throw
2015-07-14 10:33
218 查看
如有侵权,请速联系,马上删除
http://blog.csdn.net/zhou2214/article/details/8210071
一般用在try catch 块中,在try 中抛出可能的异常类,后面可以接一系列的catch子句,子句的排列顺序从特殊到一般。catch(...)必须是最后一个子句。
在catch子句中,可以继续抛出异常,eg : throw ; 这样直接抛出接受到的异常,给后续的catch子句处理。
比较特殊的是 可以在构造函数的初始化列表前面加try关键字, 这样初始化列表的异常也可以检测到,与后面的catch子句组成构造函数模块,这是构造函数所特有的用法。
标准库函数中好多类的析构函数在形参列表后面加了throw(),这句话是不抛出任何异常的意思,如果要继承标准库中这样的类,则继承类的析构函数也必须声明不抛出任何异常,加上throw()。
函数接口包括抛出的异常类型,如 int (*p)(int) throw(std::runtime_error,std::logic_error) 跟 int (*p1)(int) throw(std::runtime_error)是不同的函数指针,p1可以赋值给
p,但是反过来不行。也就是说,两个函数的抛出类型必须越来越严格,否则接口不兼容。
版权声明:本文为博主原创文章,未经博主允许不得转载。
http://blog.csdn.net/zhou2214/article/details/8210071
一般用在try catch 块中,在try 中抛出可能的异常类,后面可以接一系列的catch子句,子句的排列顺序从特殊到一般。catch(...)必须是最后一个子句。
在catch子句中,可以继续抛出异常,eg : throw ; 这样直接抛出接受到的异常,给后续的catch子句处理。
比较特殊的是 可以在构造函数的初始化列表前面加try关键字, 这样初始化列表的异常也可以检测到,与后面的catch子句组成构造函数模块,这是构造函数所特有的用法。
标准库函数中好多类的析构函数在形参列表后面加了throw(),这句话是不抛出任何异常的意思,如果要继承标准库中这样的类,则继承类的析构函数也必须声明不抛出任何异常,加上throw()。
函数接口包括抛出的异常类型,如 int (*p)(int) throw(std::runtime_error,std::logic_error) 跟 int (*p1)(int) throw(std::runtime_error)是不同的函数指针,p1可以赋值给
p,但是反过来不行。也就是说,两个函数的抛出类型必须越来越严格,否则接口不兼容。
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- DCI decoder
- 深入JVM系列(一)之内存模型与内存分配
- QTableView添加按钮
- IT项目量化管理:细化、量化与图形化 与 中国IT项目实施困惑
- 2014 ACM湖南匹配10会议省赛
- Visual Studio 更改护眼颜色
- 遇到安装app不识别的情况
- 悟空学Linux专栏----第45篇
- Ruby基础语法初探
- mel笔记
- DLL中调用约定和名称修饰(三)
- jvm类加载-全盘负责和双亲委派机制
- rocketmq消费队列代码
- Linux Centos 6.6安装Mysql
- SAP-检查多个关联字段输入,以及有条件地调用模块
- Foundation中各种初始化创建
- 命令模式
- 正确理解ThreadLocal
- RunLoop
- java 对象的初始化过程研究与探索