Exception-Klasse und Exception-Eigenschaften
Die Exception-Klasse ist die Basisklasse, von der Ausnahmen erben. Die meisten Ausnahmeobjekte sind Instanzen einer von Exception abgeleiteten Klasse . Es können jedoch beliebige Objekte als Ausnahme ausgelöst werden, die von der Object-Klasse abgeleitet sind. Beachten Sie, dass nicht alle Sprachen das Auslösen und Abfangen von Objekten unterstützen, die nicht von der Exception-Klasse abgeleitet wurden. In fast allen Fällen ist es ratsam, nur Exception-Objekte auszulösen und abzufangen.
Die Exception-Klasse verfügt über verschiedene Eigenschaften, die zum Verständnis einer Ausnahme beitragen. Diese Eigenschaften beinhalten:
Die StackTrace-Eigenschaft
Diese Eigenschaft enthält eine Stapelüberwachung, mit deren Hilfe ermittelt werden kann, wo ein Fehler aufgetreten ist. Die Stapelüberwachung beinhaltet den Quelldateinamen und die Programmzeilennummer, falls Debuginformationen verfügbar sind.
Die InnerException-Eigenschaft
Mit dieser Eigenschaft können während der Ausnahmebehandlung eine Reihe von Ausnahmen erstellt und erhalten werden. Verwenden Sie diese Eigenschaft, um eine neue Ausnahme zu erstellen, die vorher abgefangene Ausnahmen enthält. Die ursprüngliche Ausnahme kann durch die zweite Ausnahme in der InnerException-Eigenschaft abgefangen werden. Dadurch können die zusätzlichen Informationen von dem Code ausgewertet werden, der die zweite Ausnahme behandelt.
Ein Beispiel: Angenommen, Sie verfügen über eine Methode, die eine Datei liest und die Daten formatiert. Der Code versucht, die Datei zu lesen, aber eine FileException-Ausnahme wird ausgelöst. Diese Ausnahme wird durch die Methode abgefangen, und es wird eine BadFormatException-Ausnahme ausgelöst. In diesem Fall kann die FileException-Ausnahme in der InnerException-Eigenschaft der BadFormatException-Ausnahme gespeichert werden.
Damit der Aufrufer leichter ermitteln kann, warum eine Ausnahme ausgelöst wurde, ist es für eine Methode manchmal nützlich, die von einer Hilfsfunktion ausgelöste Ausnahme abzufangen und dann eine Ausnahme auszulösen, die den aufgetretenen Fehler besser verdeutlicht. Eine neue, aussagekräftigere Ausnahme kann erstellt werden, wobei als Verweis zur inneren Ausnahme die ursprüngliche Ausnahme festgelegt werden kann. Diese aussagekräftige Ausnahme kann dann für den Aufrufer ausgelöst werden. Beachten Sie, dass Sie mit dieser Funktion eine Reihe von verknüpften Ausnahmen erstellen können, die mit der zuerst ausgelösten Ausnahme endet.
Die Message-Eigenschaft
Diese Eigenschaft enthält nähere Angaben über die Ursache einer Ausnahme. Die Message wird in der Sprache angezeigt, die in der Thread.CurrentUICulture-Eigenschaft des Threads angegeben ist, der die Ausnahme auslöst.
Die HelpLink-Eigenschaft
Diese Eigenschaft kann eine URL (oder URN) zu einer Hilfedatei enthalten, die ausführliche Informationen über die Ursache der Ausnahme enthält.
Die Data-Eigenschaft.
Diese Eigenschaft stellt ein IDictionary dar, in dem beliebige Daten in Schlüssel-Wert-Paaren enthalten sind.
Fast alle Klassen, die von der Exception-Klasse erben, implementieren keine weiteren Member oder stellen keine zusätzlichen Funktionen bereit; sie erben lediglich von der Exception-Klasse. Daher sind die wichtigsten Informationen über eine Ausnahme in der Ausnahmehierarchie, in der Bezeichnung und in den in ihr selbst enthaltenen Informationen enthalten.
Siehe auch
Konzepte
Empfohlene Vorgehensweise für die Ausnahmebehandlung