哪个更好,抛出异常或返回非零值?

时间:2010-06-07 23:36:48

标签: c++ exception

  

可能重复:
  C++ - Arguments for Exceptions over Return Codes

在进行C ++编程时,您有两种报告错误的选择。我想很多老师会建议你抛出一个异常,它是从std :: exception派生的。另一种可能更“C”形式的方法是返回非零值,因为零是“ERROR_SUCCESS”。

确切地说,返回异常可以提供更多错误和恢复信息;虽然代码会膨胀一点,但在你的脑海中保持异常安全对我来说有点困难,至少。其他方式,如返回其他内容,将使报告错误更容易;缺点是管理恢复将是一个可能很大的问题。

所以人们,作为优秀的程序员,这是你的偏好,不考虑老板的意见?对我来说,我想返回一些非零值。

3 个答案:

答案 0 :(得分:6)

C++ FAQ:使用例外进行错误。

我认为这背后的逻辑是,使用返回代码,由代码的调用者负责检查返回代码以处理错误。然后,这允许您的代码的用户可能陷入糟糕的境地。另一方面,例外情况必须处理,或者它们在调用堆栈中冒泡直到它终止程序。

在我看来,如果你正在编写C ++(并且希望遵守C ++惯用法),并希望使用错误处理,那么就可以使用异常了。

答案 1 :(得分:1)

答案 2 :(得分:1)

大多数情况下通过异常更容易处理错误。编写异常安全代码也很容易。我很懒。我采取简单的路线。