【发布时间】:2011-10-19 10:20:53
【问题描述】:
我们的代码(在一个简单的库实现中)开始看起来像这样:
err = callToUnderlyingLibrary1();
if (err!=0) {
printf ("blah %d\n", err);
...
}
err = callToUnderlyingLibrary2();
if (err!=0) {
printf ("blah %d\n", err);
...
}
err = callToUnderlyingLibrary3();
if (err!=0) {
printf ("blah %d\n", err);
...
}
这既麻烦又丑陋。有一个更好的方法吗 ?也许使用 C 预处理器?我在想这样的事情:
CHECK callToUnderlyingLibrary1();
CHECK callToUnderlyingLibrary2();
CHECK callToUnderlyingLibrary3();
CHECK 宏调用函数并进行基本错误检查。
是否有首选的惯用方式来处理这个问题?
【问题讨论】:
-
您应该选择 C 或 C++,而不是两者。在 C++ 中,规范答案将涉及异常。在 C 中,它不会。
-
好主意。让我删除 C++ 标记。
-
希望我能给更多
UP votes!!! -
正如您最初将其标记为 C 和 C++,是否可以公平地假设这涉及从 C++ 代码调用的 C 库??
-
+ 1 表示希望有更好的方法来做到这一点 :)
标签: c error-handling