C++中内建的异常类(及其应该包含的头文件和应用场景或函数)
应该是int*。总之应该是个引用,否则被调函数的局部变量在函数结束会被销毁。
应该在自定义异常类的初始化链表里调用基类的构造函数。
多重异常总结:
1.一个try块里可能跑出多种异常
2.然而一个try块执行一次最多只能抛出一个异常(要么抛一个,要么一个也不抛,一旦抛出一个则不执行后面的语句,所以不会出现抛出两个异常的情况)
3.一个函数可以有多个try块,或是含有try块的函数,所以执行一个函数,可能抛出多个异常。
4.一个catch块只能捕获一个异常。
5.然而一个try块后可以紧跟多个catch块。
6.注意要类型匹配才可以捕获。
7.一旦一个catch块捕获了该异常,后面的就没得改异常可捕获了。
8.所以这个时候,catch的顺序就比较重要,捕获派生类的要在前面,捕获基类的要在后面,否则捕获派生类的永远不会捕获到异常,因为捕获基类的catch块,同样也可以捕获到派生类对象。
名词解释!:
When to rethrow an exception?
1. if the handler cannot process the exception (当它无法处理该异常)
2. the handler simply wants to let its caller be notified (或想通知它的调用 者发生了一个异常)
eg:
try { statements; }
catch (TheException &ex)
{
perform operations before exits;
throw;
}
名词解释!:
异常规约用于可能抛出异常的函数或者类,
形式如下:
!!!!
1.不用打‘ :’
2.两两之间用‘ ,’隔开,而不是用‘ ;’
3.只用类型,不用参数