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

xis*_*xis 2 c++ exception

可能重复:
C++ - 返回代码异常的参数

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

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

作为优秀的程序员,人们会不会考虑老板的意见?对我来说,我想返回一些非零值.

Ala*_*lan 6

C++ FAQ:使用异常来查找错误.

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

在我看来,如果你正在编写C++(并希望遵守C++惯用语),并且想要使用错误处理,那么异常就是可行的方法.