CA2219: exception 句に例外を発生させないでください
TypeName |
DoNotRaiseExceptionsInExceptionClauses |
CheckId |
CA2219 |
分類 |
Microsoft.Usage |
互換性に影響する変更点 |
なし、あり |
原因
finally 句、filter 句、または fault 句から例外がスローされます。
規則の説明
exception 句で例外が発生する場合、デバッグがきわめて困難になります。
finally 句または fault 句で例外が発生すると、アクティブな例外がある場合は、それが新しい例外によって隠れてしまいます。これにより、元のエラーの検出およびデバッグが困難になります。
filter 句で例外が発生すると、ランタイムがその例外を暗黙的にキャッチし、その結果、フィルターが false と評価されます。フィルターが false と評価された場合とフィルターから例外がスローされた場合を見分けることはできません。そのため、フィルターのロジック内でエラーを検出し、デバッグすることが困難になります。
違反の修正方法
この規則違反を修正するには、finally 句、filter 句、または fault 句で例外が明示的に発生しないようにします。
警告を抑制する状況
この規則による警告は抑制しないでください。exception 句で例外を発生させることがコードの実行に利点をもたらすという状況はありません。