析构函数非常特殊,编译器将在不同的上下文中自动调用。由于其特殊性,C++标准有如下建议:在栈展开过程中,如果析构函数抛异常,terminate函数将被调用。因此,析构函数应该总是能够捕获异常,并且不会让异常传播到析构函数之外。(STL中的所有析构函数均不会失败)。

  对于析构函数可能抛出异常的类,将有如下限制:

  1. 无法用于函数;当作为临时变量(对象),在析构时抛异常将导致程序异常终止。
  2. 不能被继承:派生类的析构过程也将可能抛出异常;无法作为全局或静态变量。
  3. 无法用于数组。数组无法正确的回滚,行为可能未定义。假如数组有10个元素,创建时出错(构造函数抛异常),而回滚时需调用析构函数,但此过程有可能出现一个或多个异常。
  4. 无法用于STL容器中,STL禁止所有一起使用的对象析构时抛异常。

C++析构函数不能失败的4个理由相关推荐

  1. BCH优于BCE+LN的5个理由

    去年的这个时候是比特币扩容争论最厉害的时候.为了不让社区分裂,大区块的支持者做过妥协,但是依旧没有看到有效的方案推出.最终比特币现金作为大区块的实践者被推出.自此,比特币已经成为两条发展方向不同的链. ...

  2. 编写new和delete时需固守常规——条款51

    条款50已解释什么时候你会想要写个自己的operator new和operator delete,但并没有解释当你那么做时必须遵守什么规则.这些规则不难奉行,但其中一些并不直观,所以知道它们究竟是些什 ...

  3. EffectiveC++

    一.让自己习惯C++ 条款02:尽量以const,enum,inline替换#define 条款03:尽可能使用const 二.构造/析构/赋值运算 条款04:确定对象被使用前已先被初始化 条款05: ...

  4. 整个领域没了!学术界有史以来最大的丑闻

    来源:中大科技处 10月15日,学术界发生了一件大事.哈佛终身教授学术造假,31篇文献被撤,无数研究化为泡影-- 哈佛一次性从各类顶尖期刊上撤稿了31篇论文,整个心肌干细胞相关的研究被认定为" ...

  5. 改变人生的32句励志名言

    改变人生的32句励志名言 1.大多数人想要改造这个世界,但却罕有人想改造自己. 2.积极的人在每一次忧患中都看到一个机会, 而消极的人则在每个机会都看到某种忧患. 3.莫找借口失败,只找理由成功.(不 ...

  6. 每句话都可以品半辈子!!!

    1.风之所以寂寞,皆因他吹落了花.与其给鱼一双翅膀,不如还鱼一池水塘! 2.疲惫的不是脚步,而是心情!失败的不是结果,而是意志! 3.你是秋天里的风,我却是一片叶.当你来到我的身边,我跟随着你.而你不 ...

  7. 每句话都可以品味一生

    1,老鼠嘲笑猫的时候,身旁必有一个洞. 2,站在山顶和站在山脚下的两人,虽然地位不同,但在对方眼里,同样的渺小. 3,结论就是你懒得再想下去的地方.――路的尽头,仍然是路,只要你愿意走. 4,使我们不 ...

  8. linux jsp mysql数据库,Linux JSP连接MySQL数据库.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava Linux JSP连接MySQL数据库.pdf2页 本 ...

  9. 《挖掘管理价值:企业软件项目管理实战》一2.4 软件设计过程

    本节书摘来异步社区<挖掘管理价值:企业软件项目管理实战>一书中的第2章,第2.4节,作者: 徐勤 责编: 杨海玲, 更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

最新文章

  1. HTMLCollection元素的For循环
  2. python中栈的描述是_数据结构与算法:Python语言描述 栈和队列.ppt
  3. 六十三、栈在括号匹配和表达式求值中的应用
  4. Java输出小明算对多少题目_2014年Java方向C组第十题
  5. 【shell基础】10、函数
  6. 下面属于javascript内部对象的有_JavaScript从零开始——面向对象编程(2)
  7. MVC开发中的常见错误-02-在应用程序配置文件中找不到名为“OAEntities”的连接字符串。...
  8. c 语言ifelse语句例子,C if else 语句
  9. 小米note 3从miui12稳定版刷到开发版亲测可用的教程
  10. picgo图片上传踩坑
  11. 浅谈建站经验之网站建设的流程与步骤
  12. vue中element中的input框和laod中防抖和节流结合使用(性能优化)使用lodash相关方法
  13. 加密流量分析-2.研究背景
  14. 微信开发者工具 当前系统代理不是安全代理,是否信任?问题之完美解决
  15. echarts pie饼图的使用(初级版包括设置百分比)
  16. 支付系统就该这么设计(万能通用),稳的一批!
  17. 矩阵论笔记(二)——线性变换
  18. 【计算机网络】第二部分 物理层和介质(4) 数字传输
  19. 数学基础(1)~ 概率论基础知识
  20. 工业工程跨考计算机难吗,工业工程硕士跨考 难度大不大?

热门文章

  1. AEAI WM v1.6.0 升级说明,开源工作管理系统
  2. Single Number II(LintCode)
  3. 用Visual C#来清空回收站(1)
  4. mysql事务在提交后才发送给数据库执行_从一个线上问题分析binlog与内部XA事务提交过程...
  5. linux降低屏幕亮度,降低屏幕亮度,减缓眼疲劳 (linux/windows/firefox/android)
  6. 记录一下PyQt5界面导入Python(绕开pyqt5-tools安装失败问题)
  7. 记录一下HALCON基于可变形,利用CAD画dxf模板进行模板匹配(二)
  8. oracle 截取字符串中指定位置_手撕虚拟内存(1)——字符串在虚拟内存中的段位置与/proc虚拟文件系统...
  9. 一种轻量级的C4C业务数据同步到S/4HANA的方式:Odata通知
  10. sql insert and update