Share via


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 8 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.

CA1065: Skapa inte undantag på oväntade platser

Se även