Share via


Ausnahmen sollten öffentlich sein

Aktualisiert: November 2007

TypeName

ExceptionsShouldBePublic

CheckId

CA1064

Kategorie

Microsoft.Design

Unterbrechende Änderung

Nicht unterbrechend

Ursache

Eine nicht öffentliche Ausnahme wird direkt von System.Exception, System.SystemException oder System.ApplicationException abgeleitet.

Regelbeschreibung

Eine interne Ausnahme ist nur innerhalb ihres eigenen internen Bereichs sichtbar. Nachdem die Ausnahme den internen Bereich verlassen hat, kann nur die Basisausnahme zum Abfangen der Ausnahme verwendet werden. Wenn die interne Ausnahme von T:System.Exception, T:System.SystemException oder T:System.ApplicationException geerbt wurde, verfügt der externe Code nicht über genügend Informationen zur Behandlung der Ausnahme.

Wenn im Code jedoch eine öffentliche Ausnahme enthalten ist, die später als Basis für eine interne Ausnahme verwendet wird, kann zweifellos davon ausgegangen werden, dass der weiter außen liegende Code in der Lage sein wird, die Basisausnahme auf intelligente Weise zu behandeln. Die öffentliche Ausnahme weist mehr als die von T:System.Exception, T:System.SystemException oder T:System.ApplicationException bereitgestellten Informationen auf.

Behandlung von Verstößen

Wandeln Sie die Ausnahme in eine öffentliche Ausnahme um, oder lassen Sie die interne Ausnahme von einer öffentlichen Ausnahme außer System.Exception, System.SystemException oder System.ApplicationException ableiten.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie eine Meldung dieser Regel, wenn Sie in allen Fällen sicher sind, dass die private Ausnahme innerhalb ihres eigenen internen Bereichs abgefangen wird.

Beispiel

Im Folgenden drei Beispiele, bei denen gegen die Regel verstoßen wird.