C++基础(六)异常处理

当执行throw时,throw后的语句都不执行,控制权转移到与之对应的catch模块

退出catch后,catch模块中的局部变量将会销毁

当异常处理完毕后,异常对象将被销毁

1
2
3
4
5
6
7
try{
//...
}catch (exception_a){
//...
}catch (exception_b){
//...
}

捕捉catch(对于每个catch执行下述步骤)

  1. 判断是否是精确匹配
  2. 派生类向基类转换(仅引用和指针类型)
  3. (…)匹配所有

其中一个被捕捉,跳过下面的catch

重新抛出

一条catch语句通过重新抛出的稻作将异常传递给另一个catch语句

1
throw;

其他

new申请内存失败返回bad_alloc异常,不是返回0

处理构造函数初始值异常的唯一方法是将构造函数写成函数try语句块