用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧Visual C++

如何编写异常安全的C++代码

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 20:37:23

  一般而言,语言内部类型的赋值、取地址等运算是不会发生异常的,上述三类过程逻辑上也是不会发生异常的。内部运算中,除法运算可能抛出异常。但是地址访问错通常是一种错误,而不是异常,我们本应该在前条件检查中就发现的这一点的。所有不会发生异常操作的简单累加,仍然不会导致异常。

  好了,现在我们可以总结一下编写异常安全代码的几条准则了:

  1.只在应该使用异常的地方抛出异常
  2.如果不知道如何处理异常,请不要捕获(截留)异常。
  3.充分使用RAII,旁路异常。
  4.努力实现强保证,至少实现基本保证。
  5.确保析构函数、释放类函数和swap不会失败。

  另外,还有一些语言细节问题,因为和这个主题有关也一并列出:

  1.不要这样抛出异常:throw new exception;这将导致内存泄漏。
  2.自定义类型,应该捕获异常的引用类型:catch(exception& e)或catch(const exception& e)。
  3.不要使用异常规范,即使是空异常规范。编译器并不保证只抛出异常规范允许的异常,更多内容请参考相关书籍。


上一页  [1] [2] [3] [4] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:13,875.00000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号