3

我认为这exception strong意味着程序要么成功结束,要么如果没有成功结束,它会使数据保持不变,但我不确定是什么exception neutral意思。有人可以定义这两个术语吗?

4

2 回答 2

5

“异常中性”意味着您不会捕获所有异常,而是仅捕获特定异常,让其他异常传播(到应用程序的更高级别)。

有关详细信息,请参阅http://gcc.gnu.org/onlinedocs/libstdc++/manual/using_exceptions.html

您可能还想查看 Abrahams 的异常安全级别:http ://en.wikipedia.org/wiki/Exception_guarantees

于 2013-05-27T09:27:23.677 回答
3

来自“通用组件中的异常安全”

强有力的保证:操作要么成功完成,要么抛出异常,使程序状态完全保持在操作开始之前的状态。

在通用组件中,我们通常对异常中立性有额外的期望,这意味着组件的类型参数抛出的异常应该被传播给组件的调用者,并且不会改变。

于 2013-05-27T09:27:43.770 回答