什么术语“异常强”和“异常中立”是什么意思?

时间:2013-05-27 09:20:43

标签: c++ exception exception-handling

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

2 个答案:

答案 0 :(得分:3)

“异常中立”意味着您没有捕获所有异常,但是您只捕获特定异常,而将其他异常传播(到应用程序的更高级别)。

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

您可能还想了解亚伯拉罕的例外安全级别:http://en.wikipedia.org/wiki/Exception_guarantees

答案 1 :(得分:3)

来自"Exception-Safety in Generic Components"

  

强有力的保证:操作已成功完成或抛出异常,使程序状态与操作开始前完全一致。

  

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