CA2219: Geen uitzonderingen genereren in uitzonderingsclausules
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA2219 |
Titel | Uitzonderingen in uitzonderingsclausules niet genereren |
Categorie | Gebruik |
Oplossing is brekend of niet-brekend | Niet-brekend, brekend |
Standaard ingeschakeld in .NET 9 | Als suggestie |
Oorzaak
Er wordt een uitzondering gegenereerd op basis van een finally
component, filter of fout.
Beschrijving van regel
Wanneer een uitzondering wordt gegenereerd in een uitzonderingsclausule, wordt de moeilijkheid van foutopsporing aanzienlijk verhoogd.
Wanneer een uitzondering wordt gegenereerd in een finally
of foutcomponent, verbergt de nieuwe uitzondering de actieve uitzondering, indien aanwezig. Hierdoor is de oorspronkelijke fout moeilijk te detecteren en fouten op te sporen.
Wanneer een uitzondering wordt gegenereerd in een filtercomponent, wordt de uitzondering door de runtime op de achtergrond onderschept en wordt het filter als onwaar geƫvalueerd. Er is geen manier om het verschil te zien tussen het filter dat wordt geƫvalueerd op onwaar en een uitzondering die afkomstig is van een filter. Dit maakt het lastig om fouten in de logica van het filter te detecteren en op te sporen.
Schendingen oplossen
Als u deze schending van deze regel wilt oplossen, moet u niet expliciet een uitzondering genereren op basis van een finally
component, filter of fout.
Wanneer waarschuwingen onderdrukken
Geen waarschuwing voor deze regel onderdrukken. Er zijn geen scenario's waarin een uitzondering die wordt gegenereerd in een uitzonderingsclausule een voordeel biedt voor de uitvoering van code.
Gerelateerde regels
CA1065: Geen uitzonderingen genereren op onverwachte locaties