Ausnahmeklasse und -eigenschaften

Die Exception-Klasse ist die Basisklasse, von der Ausnahmen erben. Die Hierarchie der InvalidCastException-Klasse sieht beispielsweise wie folgt aus:

Object
  Exception
    SystemException
      InvalidCastException

Die Exception-Klasse verfügt über die folgenden Eigenschaften, die das Verständnis einer Ausnahme erleichtern.

Eigenschaftenname Beschreibung
Data Ein IDictionary, das beliebige Daten in Schlüssel-Wert-Paaren enthält.
HelpLink Kann einen URL (oder URN) zu einer Hilfedatei enthalten, die ausführliche Informationen zur Ursache einer Ausnahme bereitstellt.
InnerException Diese Eigenschaft kann verwendet werden, um während der Ausnahmebehandlung eine Reihe von Ausnahmen zu erstellen und beizubehalten. Sie können sie verwenden, um eine neue Ausnahme zu erstellen, die zuvor bereits abgefangene Ausnahmen enthält. Die ursprüngliche Ausnahme kann durch die zweite Ausnahme in der InnerException-Eigenschaft abgefangen werden. So kann der Code, der die zweite Ausnahme verarbeitet, die zusätzlichen Informationen untersuchen. Ein Beispiel: Sie verfügen über eine Methode, die ein unzureichend formatiertes Argument erhält. Der Code versucht, das Argument zu lesen, es wird aber eine Ausnahme ausgelöst. Die Methode fängt die Ausnahme ab und löst eine FormatException aus. Um die Fähigkeit des Aufrufers zu erhöhen, den Grund für eine Ausnahme zu ermitteln, ist es manchmal wünschenswert, dass eine Methode eine von einer Hilfsroutine ausgelöste Ausnahme abfängt und dann eine Ausnahme auslöst, die bessere Hinweise auf den aufgetretenen Fehler bietet. Es kann eine neue, aussagekräftigere Ausnahme erstellt werden, in der der Verweis auf die innere Ausnahme auf die ursprüngliche Ausnahme festgelegt werden kann. Diese aussagekräftigere Ausnahme kann für den Aufrufer ausgelöst werden. Beachten Sie, dass Sie mit dieser Funktionalität eine Reihe von verknüpften Ausnahmen erstellen können, die mit der Ausnahme endet, die zuerst ausgelöst wurde.
Message Bietet Informationen zur Ursache einer Ausnahme.
Source Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.
StackTrace Enthält eine Stapelüberwachung, die verwendet kann, um zu ermitteln, wo ein Fehler aufgetreten ist. Die Stapelüberwachung beinhaltet den Quelldateinamen und die Programmzeilennummer, falls Debuginformationen verfügbar sind.

Die meisten der Klassen, die von Exception erben, implementieren keine weiteren Member und stellen keine weitere Funktionalität bereit. Sie erben einfach von Exception. Daher finden sich die wichtigsten Informationen für eine Ausnahme in der Hierarchie der Ausnahmeklassen, dem Namen der Ausnahme und den in der Ausnahme enthaltenen Details.

Es wird empfohlen, nur Objekte auszulösen und abzufangen, die von Exception abgeleitet sind. Sie können jedoch jedes beliebige, von der Object-Klasse abgeleitete Objekt als Ausnahme auslösen. Beachten Sie, dass einige Sprachen nur das Auslösen und Abfangen von Objekten unterstützen, die nicht von Exception abgeleitet sind.

Siehe auch