任何常规函数的错误处理代码都遵循此模板 我最后的两个问题 -
代码:
#define FAILURE 0 //or shall it be 1 for success and 0 for failure
#define SUCCESS 1
int DoSomething() {
int status = FAILURE; //or shall we assign success by default?
if (error1)
return FAIL_A
if (error2)
return FAIL_B
return SUCCESS;
}
int GetItDone() {
status = FAIL;
Status = DoSomething();
if (PASS != status) //likewise many calls can happen later
goto END;
END:
return status;
}
状态通过函数调用冒泡。
答案 0 :(得分:2)
约定为0表示成功,负值表示各种失败,正值表示预测成功。
其中,为了成功而返回0是最常见的:否则将是特殊的。
至于您的代码,最初将状态设置为失败代码并在适当时将其更改为成功将提供更多程序稳定性。
答案 1 :(得分:1)
成功返回0可让您在失败的情况下返回不同的值
#define SUCCESS 0
#define FAILURE_CASE_1 -1
#define FAILURE_CASE_2 -2