C++异常处理使用的关键字有:try、catch、throw。
C++中的异常处理机制只能处理由throw捕获的异常,没有捕获的将被忽略。
使用
try
{
throw...
}
catch(...'type)
{
cout << 'Err_infomation!" << endl;
}
语句来捕获异常,把可能发生异常的代码放在try{}语句块中,后面跟若干个catch(){}负责处理具体的异常类型,这样一组有try块和不少于一个的catch块就构成了一级异常捕获。如果本级没有带适当类型参数的catch块,将不能捕获异常,异常就会向上一级传递,函数调用处如果没有捕获住异常,则直接跳到更高一层的调用者,如果一直没有捕获该异常,C++会使用默认的异常处理函数,该函数可能会让程序最终跳出main()函数并导致程序异常终止。
catch的作用是捕获异常,finally不管代码是否有异常都会执行。try中如果有return,仍然需要执行finally语句。此种情况的执行过程如下:
- (1)执行return返回语句(return之后的语句内容),计算返回值,暂存在一个临时变量中。
- (2)执行finally语句块//不应调用return,否则try中返回值会被遮掩,得到的是finally中的值,与程序初衷相悖
- (3)return原来已经计算得到的结果值