1、异常规范的使用场景是,承诺方法只抛出什么样的异常,或者不抛出异常。如果运行的时候,不满足承诺,C++自动调用unexpected方法,unexpected调用terminate方法,terminate调用abort方法结束程序。

2、有三点需要注意:a、表面上不抛出任何异常,仔细分析还是可能会抛出异常;b、调用其他的方法,而其他的方法可能抛出异常;c、调用系统的方法,系统方法可能抛出异常。因此,承诺只抛出某些异常,或者不抛出异常(异常规范),基本上不太靠谱。

3、如果抛出了,非预期的异常。默认情况下,调用unexpected-->terminate-->abort,导致程序结束。因此,解决办法是通过set_unexpected设置一个回调方法,从而不再调用terminate方法。和此类似的情况是,通过set_new_handler设置回调方法,分配内存失败,调用回调方法。

4、异常规范表面上有用,实际上效果并不好,因此C++11已经弃用了异常规范。

最新文章

  1. Java 8函数编程轻松入门(三)默认方法详解(default function)
  2. IIS发布文件出现:未能加载文件或程序集“xxxx”或它的某一个依赖项。试图加载格式不正确的程序。
  3. c#后台进行窗体切换的方法
  4. [分类算法] :SVM支持向量机
  5. nginx伪静态
  6. Sql之表的连接总结
  7. asp.net core 认证及简单集群
  8. Android 设置隐式意图
  9. LeetCode OJ 100. Same Tree
  10. 详细介绍Java虚拟机(JVM)
  11. ansj人名识别
  12. mongoDB 其他数据类型
  13. ECMA Script 6_唯一容器 Set_映射容器 Map
  14. 使用串口安装centos操作系统
  15. u盘系统安装步骤
  16. LoadRunner-关联(自动关联和手动关联)
  17. 使用JavaScript 修改浏览器 URL 地址栏
  18. 在APP中集成iAd Banner展示广告盈利
  19. 引用数据类型(类)和ArrayList
  20. c#类中字段和方法中变量的声明问题

热门文章

  1. Android实现button一边圆角一边直角
  2. margin四个元素的顺序
  3. Asp.Net学习进度备忘(第一步:ASP.NET Web Forms)
  4. 数往知来JavaScript_DOM<十>
  5. 黑马程序员——有关protocol的小结
  6. 很棒的Sketch动画教程
  7. C# int.Parse()、int.TryParse()与Convert.ToInt32()的区别
  8. echart图表控件配置入门(二)常用图表数据动态绑定
  9. macos+apache+php+phpmyadmin 的整合过程梳理
  10. HDU1243:反恐训练营