【发布时间】:2012-05-04 15:43:14
【问题描述】:
如果遇到错误,我有一些函数会返回 1。每个函数调用一个较低级别的函数,这样如果较低级别的函数返回 1,则原始函数也返回 1。因此,错误会以这种方式向上传递。
以下是其中一项功能的高度精简版:
if (low_level_function()) {
[do stuff]
return 1;
}
[do other stuff]
return 0;
我是否应该改为声明一个错误变量,将 low_level_function() 的结果分配给它,然后在 if() 语句中使用错误变量?换句话说:
int error = low_level_function();
if (error) {
[do stuff]
return 1;
}
[do other stuff]
return 0;
或者还有其他更好的方法吗?我以前从未编写过代码来解释错误,所以我在这里的经验相当有限。
编辑:我已重新格式化函数以更好地传达我的代码的性质。
【问题讨论】:
-
return low_level_function();怎么样?如果你需要它之间的东西,int error = low_level_function(); ...; return error;。很多人都会同意return condition;比return (condition ? true : false);好 -
你看过异常吗?
-
@111111:OP 可能并不是有意将其标记为 C++(根据通常的 C++ 和 C 组合标记判断)。
-
@sixlettervariables,如果他们确实使用 C++,我认为这不是不提它的好理由。
-
在编写示例代码时,我忽略了该函数不仅仅是从低级函数返回错误的事实。该问题已被编辑以反映这一点。
标签: c++ c error-handling