C でのブロックのキャッチ : 値と参照
C では、例外を値でキャッチするか参照でキャッチするかを選択できます。 。この決定は、コードの動作と正確さに影響を与える可能性があります。
標準的な実践
C での例外の標準的な実践は、値によってスローし、参照によってキャッチすることです。
推論
値によるキャッチは、次の場合に問題が発生する可能性があります。継承階層の存在。次の例を考えてみましょう。
class CustomException { public: int errorCode; }; class MyException : public CustomException { public: MyException() { errorCode = 5; } };
MyException がスローされ、値によってキャッチされた場合、CustomException インスタンスに変換され、エラー コードが 0 に設定されます。これにより、予期しない動作が発生する可能性があります。
参照によるキャッチ
参照による例外のキャッチにより、元のスローされた例外が維持されるため、例外のプロパティに正確にアクセスできます。上記の例では、MyException &e をキャッチすることで、エラー コードが 5 に設定されたままになります。
値でキャッチする場合
値でキャッチすることがまれにあります。次のような場合に推奨されます:
推奨事項
一般に、特に例外のコンテキストにおいて、例外の正しい処理を保証するために、値によるスローと参照によるキャッチという標準的な慣行に従うことを強くお勧めします。継承。
以上がC で値または参照によってキャッチするには: どちらが他よりも優れているのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。