C++异常处理流程

在编写程序时我们会经常遇到异常要处理的,比如:

  • 用户输入除数时,不小心输入了零
  • 程序在分配内存时,内存不够了
  • 访问数组下标越界,
  • 加载资源时,发现没有资源等

以上这些都是要在设计时就要考虑到的,异常处理也是程序设计中的一部份,不能说只设计程序怎么运行,不处理异常,这样的程序是不键壮的。

在C++语言中有比较规范的一套异常处理机制,C++异常处理也是C++中非常重要的组成部份。关键字: throw 抛出一种类型异常, try  试着运行一段代码   catch捕捉异常(根据异常类型来捕捉异常)

C++异常处理流程:假设定义函数Fun,Fun内有异常后,抛出一个异常给调用者,自己不做处理。如果是Fun2调用了Fun函数,Fun函数抛出异常,Fun2捕捉到异常并处理了异常,异常在Fun2内就结束。如果Fun2没有处理异常,异常将向抛向Fun2的调用者,以此类推,直到main函数。

C++异常处理流程demo代码:

异常处理输出结果:

相信看完代码可以更深刻的认识C++异常处理,异常处理可以让程序在编写时,只做定义抛出异常,让调用者完成异常部份的处理,这种推迟处理异常的方式在设计时非常重要。因为在定义函数时异常如果就处理掉,会对调用者编写程序更多限制,还有就是定义函数时也并不能准确的知道异常要如何处理。

通用异常捕捉catch(…)

如果捕捉异常时没有捕捉到对应类型异常,如果程序有定义catch(…)语言,异常将被catch(…)捕捉。catch(…)跟switch开关语句中的default用法类似

一般程序中的异常处理部份设计的好,程序也会更健状。