CA2219: Skapa inte undantag i undantagssatser
Property | Värde |
---|---|
Regel-ID | CA2219 |
Title | Skapa inte undantag i undantagssatser |
Kategori | Användning |
Korrigeringen är icke-bakåtkompatibel | Icke-breaking, Breaking |
Aktiverad som standard i .NET 9 | Som förslag |
Orsak
Ett undantag genereras från en finally
, filter- eller felsats.
Regelbeskrivning
När ett undantag utlöses i en undantagsklausul ökar det avsevärt felsökningssvårigheterna.
När ett undantag utlöses i en finally
felsats döljer det nya undantaget det aktiva undantaget, om det finns. Detta gör det ursprungliga felet svårt att identifiera och felsöka.
När ett undantag utlöses i en filtersats fångar körningen tyst undantaget och gör att filtret utvärderas till falskt. Det finns inget sätt att se skillnaden mellan filtret som utvärderas till false och ett undantag som genereras från ett filter. Detta gör det svårt att identifiera och felsöka fel i filtrets logik.
Så här åtgärdar du överträdelser
Åtgärda denna överträdelse av den här regeln genom att inte uttryckligen skapa ett undantag från en finally
, filter- eller felklausul.
När du ska ignorera varningar
Ignorera inte en varning för den här regeln. Det finns inga scenarier där ett undantag som genereras i en undantagsklausul ger en fördel för den körbara koden.
Relaterade regler
CA1065: Skapa inte undantag på oväntade platser