C++ 异常处理
2014-05-19 17:38
176 查看
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().如果该函数自己处理该异常,并且异常在逃离该函数之前被处理,那么一切都不会有问题。
异常(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().如果该函数自己处理该异常,并且异常在逃离该函数之前被处理,那么一切都不会有问题。
相关文章推荐
- C与C++中的异常处理2(转)
- C与C++中的异常处理16
- C++中的异常处理(二)——抛出异常
- C++异常处理须知
- c++异常处理机制示例及讲解
- C++的异常处理
- C++中的异常处理
- C++异常处理机制__1.SEH处理的函数栈布局
- C++中的异常处理(求教:catch中的向上类行转化)
- C与C++中的异常处理12
- C,C++,MFC 异常处理(zz)
- C与C++中的异常处理(1)
- C++中的异常处理(一)——C和C++中异常处理的区别
- C,C++,MFC 异常处理(zz)
- C与C++中的异常处理10
- C与C++中的异常处理2(part2)
- 王老师 C++ 异常处理
- Symbian 基础总结 --Symbian C++中的异常处理
- c++的异常处理demo
- C++ 异常处理