CA2219: Nie zgłaszaj wyjątków w klauzulach wyjątków
TypeName |
DoNotRaiseExceptionsInExceptionClauses |
CheckId |
CA2219 |
Kategoria |
Microsoft.Usage |
Zmiana kluczowa |
Nie kluczowa, kluczowa |
Przyczyna
Zgłoszony został wyjątek w klauzuli finally, filtru lub fault.
Opis reguły
Gdy zgłaszany jest wyjątek w klauzuli wyjątku, znacznie zwiększa się trudność debugowania.
Kiedy jest wyjątek zgłaszany w klauzuli finally lub fault, nowy wyjątek ukrywa aktywne wyjątki, jeśli są obecne.Dzięki temu oryginalny błąd jest trudny do wykrycia i debugowania.
Kiedy wyjątek jest zgłaszany w klauzuli filtru, środowisko uruchomieniowe dyskretnie przechwytuje wyjątek i powoduje, że filtr zwraca false.Nie istnieje sposób, aby odróżnić zwracanie false przez filtr od zgłoszenia błędu przez filtr.Dzięki temu trudno wykryć i debugować błędy w logice filtru.
Jak naprawić naruszenia
Aby naprawić naruszenie tej reguły, nie należy jawnie zgłaszać wyjątku z klauzuli finally, filtru lub fault.
Kiedy pominąć ostrzeżenia
Nie należy pomijać ostrzeżenia dotyczącego tej reguły.Nie istnieją scenariusze, w których wyjątek zgłaszany w klauzuli wyjątku zapewnia korzyść wykonywanemu kodu.
Powiązane reguły
CA1065: Nie należy wyrzucać wyjątków w nieoczekiwanych lokalizacjach