Udostępnij za pośrednictwem


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

Zobacz też

Inne zasoby

Ostrzeżenia projektu