原则15:了解异常处理的系统开销

首先明确的是异常机制的确是需要系统开销的。
它的开销表现在以下几个方面:
1、跟踪记录。你要知道无论是哪里出现了异常,C++都会处理异常,当然这是在你确实写了try……catch之类的东西的前提下。那么系统为什么会自动采取行动呢?那是因为C++记录了你程序的行踪和行为。
2、即使你不使用异常,也要为异常付出代价。因为现在的C++编译器都支持异常,异常机制已经是C++的一部分。当然如果你不使用支持异常机制的编译器可以避免此开销。此外,有些编译器有选项可以让你开关异常机制。不过关闭异常机制可能导致你无法重定义程序库中生命的虚拟函数和客户自定义的回调函数,虽然我并不太懂它俩与异常之间的关系,但是还是记下来吧。
3、try块。只要你使用try就得付出代价,如果确实抛出了异常付出的代价更大。
4、异常规格声明与try块生成的代码一样多,所以没必要不要写异常声明。
5、确实抛出了异常,那系统开销会非常大。
基于以上几点原因,除非有必要,请关闭异常机制。

多谢捧场

如果您觉得我的文章有价值,那么赏脸打赏一个,鄙人感激不尽。不过,不打赏看看也是好的,如果有不对的地方,还请您多多指正。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • Java异常控制机制又被称为“违例控制机制”。捕获程序错误最理想的时机是在编译阶段,这样可以彻底避免错误的代码运行...
    kelgon阅读 4,301评论 2 50
  • 转载文章,仅用于个人查阅和学习。原文链接:http://www.jianshu.com/p/15872cba211...
    Jayden_Cao阅读 1,253评论 0 1
  • 在今年,冬季好像额外的寒冷,仿佛天地都被冻住,寒风凛冽;对于住在八楼的我来说,一开门寒风吹拂在脸上,一阵刺痛,毫不...
    薄荷薇薇安阅读 531评论 11 4