0

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 (...)
    {
     }
  }

次に、プログラムがクラッシュして例外がスローされるリスクがあります。私の質問は次のとおりです。この場合、エラー値を返すことを正当化しましたか? エラー値と例外を選択するためのギルドラインはありますか? ありがとう!

4

1 に答える 1

1

これをチェックしてください http://www.parashift.com/c++-faq/exceptions.html 一般に、例外が問題であることが証明された場合にのみ、パフォーマンスの重要なセクションで戻り値を使用します。また、モジュールの境界を越えてスローしないでください。

于 2013-06-07T08:42:14.170 に答える