1 抛出异常
异常(exception)是程序可以检测到的,C++程序中出现异常时,检测到异常的程序段可以通过产生(raise)或抛出(throw)异常来通知。
2.try块可以包含任何C++语句-表达式以及声明,一个try快引入一个局部域,在try块内声明的变量不能在try块外被引用,包括在catch子句中。
3.捕获异常
C++异常处理代码是catch字句,一个catch子句由三部分构成:关键字catch,在括号中的单个类型或单个对象声明以及符合语句中的一组语句。
catch子句的异常声明可以是一个类型声明或一个对象声明。
在查找用来处理被抛出异常的catch子句时,因为异常而退出复合语句和函数定义,这个过程被称为栈展开。
catch子句可能决定该异常必须由函数调用链中更上级的函数来处理,那么catch字句可以通过重新抛出该异常,throw;
异常规范(exceptin specification) 提供了一种方案,它能够随着函数声明列出该函数可能抛出的异常。
异常规范跟随在函数参数表之后,它用关键字throw来指定,后面是用括号括起来的异常类型表。
如果函数抛出了一个没有被列在其异常规范中的异常,系统未必就会调用unexpected().如果该函数自己处理该异常,并且异常在逃离该函数之前被处理,那么一切都不会有问题。