CA2219:exception 句に例外を発生させないでください
プロパティ | 値 |
---|---|
ルール ID | CA2219 |
Title | exception 句に例外を発生させないでください |
[カテゴリ] | 使用方法 |
修正が中断ありか中断なしか | 中断なし、中断あり |
.NET 8 では既定で有効 | 提案として |
原因
例外が finally
、filter、または fault 句かスローされます。
規則の説明
例外が exception 句で発生すると、デバッグの難易度が大幅に向上します。
finally
句または fault 句で例外が発生すると、アクティブな例外 (ある場合) が新しい例外によって隠されます。 これにより、元のエラーの検出およびデバッグが困難になります。
filter 句で例外が発生すると、ランタイムではその例外をサイレントにキャッチし、フィルターの評価を false にします。 フィルターが false と評価されていることとフィルターによって例外がスローされていることを区別する方法はありません。 これにより、フィルターのロジックでのエラーを検出してデバッグすることが難しくなります。
違反の修正方法
この規則の違反を修正するには、finally
、filter、または fault 句から明示的に例外を発生させないようにします。
どのようなときに警告を抑制するか
この規則に対する警告は抑制しないでください。 exception 句で発生した例外によって実行コードに利点がもたらされるシナリオはありません。
関連規則
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET