【M14】明智运用异常规范
2024-10-15 04:06:47
1、异常规范的使用场景是,承诺方法只抛出什么样的异常,或者不抛出异常。如果运行的时候,不满足承诺,C++自动调用unexpected方法,unexpected调用terminate方法,terminate调用abort方法结束程序。
2、有三点需要注意:a、表面上不抛出任何异常,仔细分析还是可能会抛出异常;b、调用其他的方法,而其他的方法可能抛出异常;c、调用系统的方法,系统方法可能抛出异常。因此,承诺只抛出某些异常,或者不抛出异常(异常规范),基本上不太靠谱。
3、如果抛出了,非预期的异常。默认情况下,调用unexpected-->terminate-->abort,导致程序结束。因此,解决办法是通过set_unexpected设置一个回调方法,从而不再调用terminate方法。和此类似的情况是,通过set_new_handler设置回调方法,分配内存失败,调用回调方法。
4、异常规范表面上有用,实际上效果并不好,因此C++11已经弃用了异常规范。
最新文章
- Java 8函数编程轻松入门(三)默认方法详解(default function)
- IIS发布文件出现:未能加载文件或程序集“xxxx”或它的某一个依赖项。试图加载格式不正确的程序。
- c#后台进行窗体切换的方法
- [分类算法] :SVM支持向量机
- nginx伪静态
- Sql之表的连接总结
- asp.net core 认证及简单集群
- Android 设置隐式意图
- LeetCode OJ 100. Same Tree
- 详细介绍Java虚拟机(JVM)
- ansj人名识别
- mongoDB 其他数据类型
- ECMA Script 6_唯一容器 Set_映射容器 Map
- 使用串口安装centos操作系统
- u盘系统安装步骤
- LoadRunner-关联(自动关联和手动关联)
- 使用JavaScript 修改浏览器 URL 地址栏
- 在APP中集成iAd Banner展示广告盈利
- 引用数据类型(类)和ArrayList
- c#类中字段和方法中变量的声明问题
热门文章
- Android实现button一边圆角一边直角
- margin四个元素的顺序
- Asp.Net学习进度备忘(第一步:ASP.NET Web Forms)
- 数往知来JavaScript_DOM<;十>;
- 黑马程序员——有关protocol的小结
- 很棒的Sketch动画教程
- C# int.Parse()、int.TryParse()与Convert.ToInt32()的区别
- echart图表控件配置入门(二)常用图表数据动态绑定
- macos+apache+php+phpmyadmin 的整合过程梳理
- HDU1243:反恐训练营