このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
前のハンドラーによって隠された例外ハンドラーです
同じ例外に対して catch
ステートメントが先行しているため、catch
ステートメントに到達しない
説明
この欠陥は、先行する catch
ステートメントが例外を処理したために、catch
ステートメントに到達しなかった場合に発生します。
たとえば、catch
ステートメントがクラス my_exception
のオブジェクトを受け取り、後出の catch
ステートメントが次のいずれかを受け取る場合などです。
my_exception
クラスのオブジェクト。my_exception
クラスから派生したクラスのオブジェクト。
リスク
catch
ステートメントに到達しないため、実質的にデッド コードとなります。
修正方法
1 つの修正方法として、余分な catch
ステートメントを削除します。
別の修正方法として、catch
ステートメントの順序を逆にします。派生クラスの例外を受け取る catch
ステートメントを、基底クラス例外を受け取る catch
ステートメントの前に配置します。
例
結果情報
グループ: C++ の例外 |
言語: C++ |
既定値: 手書きコードはオン、生成コードはオフ |
コマンド ライン構文: EXCP_HANDLER_HIDDEN |
影響度: Medium |
バージョン履歴
R2015b で導入