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.