前のハンドラーによって隠された例外ハンドラーです
同じ例外に対して 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 で導入