Exception

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.只用类型,不用参数

原文地址:https://www.cnblogs.com/skx971016/p/6978232.html