gpt4 book ai didi

c++ - 错误处理语句是如何格式化的?

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:31 26 4
gpt4 key购买 nike

我有几个函数在遇到错误时返回 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;

或者还有其他更好的方法吗?我以前从未编写代码来解决错误,所以我在这里的经验相当有限。

编辑:我重新格式化了函数以更好地表达我的代码的性质。

最佳答案

首选第二种形式的一个原因是当您在错误情况下无事可做并且希望避免嵌套 if 语句的阶梯效应时。

int error_flag = low_level_function();
if (!error_flag)
error_flag = second_function();
if (!error_flag)
error_flag = third_function();
return error_flag;

当然,对于那个具体的例子,你可以通过使用 || 的短路属性来真正简化:

return low_level_function() || second_function() || third_function();

关于c++ - 错误处理语句是如何格式化的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com