C++错误处理机制及相关标准解析
1. C++中的错误处理机制
在C语言里,错误处理是个重要问题。在引入 set jump 异常机制之前,从函数获取错误码的方式有限,主要有以下两种:
- 限制函数输出,将函数的某些输出值视为错误。
- 让函数返回一个结构体,然后手动解析该结构体。
以下是一个示例代码:
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 output = myfunc(42);
if (output.error_code == -1) {
printf("yikes\n");
return;
}
}
这个示例提供了一种从函数输出错误的简单机制,无需限制函数的输出(例如,不假定 -1 总是表示错误)。
在C++中,可以使用C++17的逻辑来实现相同的功能:
#include <utility>
#includ
超级会员免费看
订阅专栏 解锁全文

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



