Udostępnij za pośrednictwem


CA2219: Nie zgłaszaj wyjątków w klauzulach wyjątków

Właściwości Wartość
Identyfikator reguły CA2219
Tytuł Nie zgłaszaj wyjątków w klauzulach wyjątków
Kategoria Użycie
Poprawka powodująca niezgodność lub niezgodność Niezgodność, niezgodność
Domyślnie włączone na platformie .NET 8 Jako sugestia

Przyczyna

Wyjątek jest zgłaszany z klauzuli finally, filtru lub błędu.

Opis reguły

Gdy wyjątek jest zgłaszany w klauzuli wyjątku, znacznie zwiększa trudności z debugowaniem.

Gdy wyjątek jest zgłaszany w klauzuli finally lub błędu, nowy wyjątek ukrywa aktywny wyjątek, jeśli istnieje. Sprawia to, że oryginalny błąd jest trudny do wykrycia i debugowania.

Gdy wyjątek jest zgłaszany w klauzuli filtru, środowisko uruchomieniowe dyskretnie przechwytuje wyjątek i powoduje, że filtr ma wartość false. Nie ma sposobu, aby określić różnicę między filtrem ocenianym jako fałsz a zgłaszanym wyjątkiem z filtru. Utrudnia to wykrywanie i debugowanie błędów w logice filtru.

Jak naprawić naruszenia

Aby naprawić to naruszenie tej reguły, nie należy jawnie zgłaszać wyjątku z finallyklauzuli , filtru lub błędu.

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżenia dla tej reguły. Nie ma scenariuszy, w których wyjątek zgłoszony w klauzuli wyjątku zapewnia korzyść dla kodu wykonawczego.

CA1065: Nie zgłaszaj wyjątków w nieoczekiwanych lokalizacjach

Zobacz też