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 finally
klauzuli , 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.
Powiązane reguły
CA1065: Nie zgłaszaj wyjątków w nieoczekiwanych lokalizacjach