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

标签 c++ exception

<分区>

Possible Duplicate:
C++ - Arguments for Exceptions over Return Codes

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

无疑,返回异常可以提供更多的错误和恢复信息;虽然代码会有点膨胀,但至少对我来说,让异常安全成为你的想法有点困难。其他方式如返回其他东西,将使报告错误更容易;缺点是管理恢复可能是一个大问题。

所以各位,作为优秀的程序员,你更喜欢哪一个,而不考虑你老板的意见?对我来说,我想返回一些非零值。

最佳答案

来自C++ FAQ : 对错误使用异常。

在我看来,这背后的逻辑是,对于返回码,代码的调用者有责任检查返回码以处理错误。这样一来,您的代码的用户就有可能陷入糟糕的境地。另一方面,异常必须被处理,否则它们会在调用堆栈中冒泡,直到它终止程序。

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

关于c++ - 哪个更好,抛出异常或返回非零值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993910/

相关文章:

c++ - CUDA 驱动程序 API 和函数处理

c++ - 我可以使用 GT511C1 代替 GT511C3 指纹扫描仪吗?

Java、安卓: Activity not found exception when exporting

c++ - GCC comp_except_specs 和异常处理/解析

java - 当我输入字母 a b c 时,java 中的期望会下降

java - Spring ExceptionHandler 和 Rest 响应的异常

java - 从套接字读取 n 秒

c++ - ZeroMQ 无法通过单播 IPv6 工作

c++ - 是否可以创建自己的自定义语言环境

Android:如何检查特定异常?