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;
}
上記のコードからわかるように、関数を完了するには、いくつかの手順が必要です。1 つのステップが失敗すると、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 (...)
{
}
}
次に、プログラムがクラッシュして例外がスローされるリスクがあります。私の質問は次のとおりです。この場合、エラー値を返すことを正当化しましたか? エラー値と例外を選択するためのギルドラインはありますか? ありがとう!