【发布时间】:2013-02-20 23:45:32
【问题描述】:
在以下代码结构的情况下:
int function_sequence(...)
{
f1(...);
f2(...);
f3(...);
f4(...);
f5(...);
return SUCCESS;
}
哪种错误处理方式更容易接受?
这个:
int function_sequence(...)
{
if(f1(...)){
// Error handling
return ERROR;
}
if(f2(...)){
// Error handling
return ERROR;
}
...
return SUCCESS;
}
或者这个:
int function_sequence(...)
{
if(f1(...)){
goto error;
}
if(f2(...)){
goto error;
}
...
return SUCCESS;
error:
// Error handling
return ERROR;
}
【问题讨论】:
-
您可能需要针对 C 和 C++ 分别提出不同的问题,因为每个问题的错误处理习惯用法会非常不同。
-
这是一道 c 题。 c++ 有更好的错误处理方式。第二个绝对不是c中的首选。 goto 是破坏的同义词。永远不要使用它。你有很多方法可以绕过它。
-
我都见过。我最后一次看到
goto error成语是公司强制编码风格。 -
@JoachimPileborg 即使在范围内,使用标志等是否比使用 goto 语句更好?
-
@Koushik 关于编码风格的所有问题,这是非常个人化的。除非别人要求,否则做你觉得最舒服的事。
标签: c error-handling coding-style