我有一个与 c++ 异常有关的问题。我知道在许多情况下抛出异常比返回错误值更好。但是,我确实发现以下情况,返回错误值比异常更可行:
bool run_a_function()
{
if (!function_step1())
return false;
if (!function_step2())
return false;
if (!function_step3())
return false;
if (!function_step4())
return false;
}
从上面的代码我们可以看出,为了完成一个功能,需要几个步骤。如果一个步骤失败,则返回一个错误值。那么当操作员使用该功能时,run_a_function
他可以确保即使该功能运行不好,程序也不会崩溃:
if (run_a_function())
do_something();
else
do_other_things();
但是,如果我们使用异常:
void run_a_function()
{
try
{
function_step1();
function_step2();
function_step3();
function_step4();
}
catch (...)
{
}
}
那么我就有程序崩溃并引发异常的风险。我的问题是:在这种情况下,我是否有理由返回错误值?是否有一些用于选择错误值和异常的行会?谢谢!