Freigeben über


CA2219: Keine Ausnahmen in Ausnahmeklauseln auslösen

TypeName

DoNotRaiseExceptionsInExceptionClauses

CheckId

CA2219

Kategorie

Microsoft.Usage

Unterbrechende Änderung

Nicht unterbrechend, unterbrechend

Ursache

Von finally, einem Filter oder einer fault-Klausel wird eine Ausnahme ausgelöst.

Regelbeschreibung

Wenn eine Ausnahme in einer Ausnahmeklausel ausgelöst wird, wird das Debuggen deutlich erschwert.

Wenn eine Ausnahme in einer finally- oder fault-Klausel ausgelöst wird, wird die aktive Ausnahme, falls vorhanden, von der neuen Ausnahme verdeckt. Dadurch ist der ursprüngliche Fehler nur schwer zu erkennen und zu debuggen.

Wenn in einer Filterklausel eine Ausnahme ausgelöst wird, wird die Ausnahme durch die Laufzeit automatisch abgefangen, wodurch der Filter mit false ausgewertet wird. Es kann nicht unterschieden werden, ob der Filter mit false ausgewertet wird oder ob eine Ausnahme von einem Filter ausgelöst wurde. Dadurch wird das Erkennen und Debuggen von Fehlern in der Filterlogik erschwert.

Behandeln von Verstößen

Um diesen Verstoß gegen diese Regel zu beheben, lösen Sie keine explizite Ausnahme von finally, einem Filter oder einer fault-Klausel aus.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung dieser Regel. Es gibt keine Szenarien, in denen eine durch eine Ausnahmeklausel ausgelöste Ausnahme einen Vorteil gegenüber dem ausführenden Code darstellt.

Verwandte Regeln

CA1065: Keine Ausnahmen an unerwarteten Speicherorten auslösen

Siehe auch

Weitere Ressourcen

Entwurfswarnungen