分类
Level3

异常处理

一、异常
异常是程序在运行期间,由于系统环境或者用户操作不当等原因引起的问题,例如:
● 做除法的时候除数为 0;
● 用户输入年龄时输入了一个负数;
● 用 new 运算符动态分配空间时,空间不够导致无法分配;
● 访问数组元素时,下标越界;
● 打开文件读取时,文件不存在。C++语言中,如果异常发生,但没有处理异常的代码,则程序会异常结束,体现在竞赛中,是我们常见的代码运行错误

二、异常处理的实现
trycatchthrow语句就是实现异常处理的语句。
try-catch用于捕获异常,必须配合使用!
throw关键字用于抛出异常举个例子:输入m为0时,则抛出异常;否则不会抛出异常。

三、多个catch捕获异常
try可以配合多个catch,处理不同类型的异常
◆ 当抛出一个异常时,按顺序从上到下依次比对异常类型;
◆ 找到匹配的异常类型,则执行对应的处理代码,执行完毕结束整个try-catch语句

四、函数的异常处理
当某段程序(函数)不能处理异常,可以将异常抛给上一级调用者进行处理。◆ 函数执行时抛出异常,函数自身没有对异常的处理,则返回上层调用处!函数执行时抛出异常,函数自身有对异常的处理,则先进行处理;不能处理,则返回上层调用处处理。如果一层层的函数都不处理异常,异常最终会被拋给最外层的 main 函数。main 函数应该处理异常。如果main函数也不处理异常,那么程序就会立即异常地中止(竞赛代码则表现为运行错误)。