C++ 在现代C++;?

C++ 在现代C++;?,c++,exception-handling,c++11,C++,Exception Handling,C++11,目前,我们只在外部源(例如数据)导致的不可恢复故障时抛出,并在整个执行过程中使用一个try-catch 何时/为什么/如何在现代C++中使用异常?< /强> < /p> C++11是否改变了上述问题的答案?关于问题的第一部分(最佳实践),标准参考是Herb Sutter的“异常C++:47工程难题、编程问题和解决方案”的“异常安全问题和技术”部分 解决C++11部分--以下参考可能会有所帮助: 添加了新的异常特定功能: 就其应用而言,即使看似不相关的功能实际上也非常相关: “unique_

目前,我们只在外部源(例如数据)导致的不可恢复故障时抛出,并在整个执行过程中使用一个try-catch

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


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

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

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

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

就其应用而言,即使看似不相关的功能实际上也非常相关: “unique_ptr的用途包括为动态分配的内存提供异常安全[…]”

异常规范已被弃用:

异常应用于异常情况,这种情况需要在调用堆栈中传递,因为您无法在发生异常的级别上有效地处理它们。“我不喜欢异常的语法和增加的复杂性”-而不是每次调用函数时都检查错误码?有理由不喜欢例外,但我不认为这是其中之一。除了个人观点(应该删去),我不认为这个问题没有建设性。@AdrianCornish:不,我想他是指他写的:这个问题是“封闭的,没有建设性的”,但他认为这个问题没有建设性,除了一句不具建设性的句子之外,这个问题究竟有什么建设性?根据定义,这是一个关于代码风格和观点的问题。有些人认为例外是可怕的,永远不应该被使用。另一些人认为它们很棒,应该随时替换回报值。其他人介于两者之间。所有这些都将导致辩论和意见。充其量,这应该交给programmers.se,但他们可能也会关闭它,因为它“主观上不好”。