C++ 错误处理机制与标准编程深入解析
1. C++ 中的错误处理机制
在 C 语言里,错误处理是个棘手问题。在引入 setjmp 异常机制之前,从函数获取错误码的方式有限:
- 限制函数输出,将特定输出值视为错误。
- 让函数返回一个结构体,再手动解析该结构体。
以下是一个示例代码:
struct myoutput
{
int val;
int error_code;
};
struct myoutput myfunc(int val)
{
struct myoutput output = {0};
if (val == 42) {
output.error_code = -1;
}
output.val = val;
return output;
}
void foo(void)
{
struct myoutput result = myfunc(42);
if (result.error_code == -1) {
printf("yikes\n");
return;
}
}
这个例子展示了一种简单的函数错误输出机制,无需限制函数输出(比如假定 -1 总是错误)。
在 C++ 中,可使用 C++17 的逻辑来实现:
#include <utility>
#include <cstdio>
超级会员免费看
订阅专栏 解锁全文
11万+

被折叠的 条评论
为什么被折叠?



