如何在现代C ++中使用异常?

时间:2011-12-21 21:40:56

标签: c++ exception-handling c++11

目前我们只抛出由外部源(例如数据)导致的不可恢复的故障,并且在整个执行过程中只有一次尝试捕获。

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

C ++ 11是否会改变上述问题的答案?

1 个答案:

答案 0 :(得分:2)

关于问题的第一部分(最佳实践),标准参考是Herb Sutter撰写的“Exceptional C ++:47工程难题,编程问题和解决方案”中的“异常 - 安全问题和技术”部分。

解决C ++ 11部分 - 以下参考资料可能会有所帮助:

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

http://www2.research.att.com/~bs/C++0xFAQ.html#rethrow

http://www2.research.att.com/~bs/C++0xFAQ.html#noexcept

就其应用程序而言,即使看似无关的功能实际上也非常相关: “unique_ptr的用途包括为动态分配的内存[...]提供异常安全性” http://www2.research.att.com/~bs/C++0xFAQ.html#std-unique_ptr

已弃用异常规范: http://herbsutter.com/2010/03/13/trip-report-march-2010-iso-c-standards-meeting/