Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschap | Waarde |
|---|---|
| Regel-id | CA2219 |
| Titel | In uitzonderingsclausules geen uitzonderingen genereren |
| Categorie | Gebruik |
| Fix kan brekend of niet-brekend zijn | Niet-afbreekbaar, afbreekbaar |
| Standaard ingeschakeld in .NET 10 | Als suggestie |
| Toepasselijke talen | C# en Visual Basic |
Oorzaak
Er wordt een uitzondering gegenereerd op basis van een finallycomponent, 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 als onwaar wordt geëvalueerd en een uitzondering die door een filter wordt geworpen. Dit maakt het lastig om fouten in de logica van het filter te detecteren en op te sporen.
Hoe schendingen op te lossen
Als u deze schending van deze regel wilt oplossen, moet u geen uitzondering expliciet opwerpen vanuit een finally, filter of foutclausule.
Example
try
{
// ...
}
finally
{
// This code violates the rule.
throw new Exception();
}
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