在现代c++中应该如何使用异常

How should exceptions be used in modern C++?

本文关键字:何使用 异常 c++      更新时间:2023-10-16

目前我们只抛出由外部源(例如数据)导致的不可恢复的失败,并且在整个执行过程中只有一个try catch。

在现代c++中何时/为什么/如何使用异常?

c++ 11会改变上述问题的答案吗?

关于问题的第一部分(最佳实践),标准参考是Herb Sutter的《异常c++: 47个工程难题、编程问题和解决方案》中的"异常安全问题和技术"部分。

解决c++ 11部分——以下参考可能会有所帮助:

添加了新的特定于异常的功能:

http://www2.research.att.com/bs/c++ 0 xfaq.html #重新抛出

http://www2.research.att.com/bs/c++ 0 xfaq.html # noexcept

即使看似不相关的特性,实际上就其应用而言也是非常相关的:unique_ptr的用途包括为动态分配的内存提供异常安全[…]http://www2.research.att.com/bs/c++ 0 xfaq.html # std-unique_ptr

异常规范已弃用:http://herbsutter.com/2010/03/13/trip报告- 3月- 2010 iso - c -标准meeting/