Behandeln und Auslösen von Ausnahmen
Programme müssen in der Lage sein, während der Ausführung auftretende Fehler einheitlich zu behandeln. Die CLR (Common Language Runtime) unterstützt den Entwurf fehlertoleranter Software mit einem Modell für eine einheitliche Fehlerbenachrichtigung in Programmen. Alle Operationen in .NET Framework zeigen Fehler durch Auslösen von Ausnahmen an.
Herkömmliche Modelle der Fehlerbehandlung in Sprachen beruhten bisher entweder auf eigenen sprachenabhängigen Methoden der Fehlererkennung und -behandlung oder auf dem Fehlerbehandlungsmechanismus des Betriebsystems. Die CLR implementiert eine Ausnahmebehandlung mit folgenden Merkmalen:
Behandelt Ausnahmen ohne Berücksichtigung der Sprache, die die Ausnahme generiert oder behandelt.
Eine besondere Sprachsyntax ist für die Ausnahmebehandlung nicht erforderlich, trotzdem kann jede Sprache ihre eigene Syntax definieren.
Ausnahmen können prozess- und sogar computerübergreifend ausgelöst werden.
Ausnahmen bieten verschiedene Vorteile gegenüber anderen Methoden zur Fehlerbenachrichtigung, z. B. Rückgabecodes. Fehler können nicht unerkannt bleiben. Ungültige Werte werden im System nicht mehr weitergegeben. Sie müssen keine Rückgabecodes überprüfen. Der Ausnahmebehandlungscode kann leicht erweitert werden, um die Programmzuverlässigkeit zu erhöhen. Und schließlich ist die Ausnahmebehandlung der CLR schneller als die auf Windows basierende C++-Fehlerbehandlung.
Da Ausführungsthreads üblicherweise verwaltete und nicht verwaltete Codeblöcke abarbeiten, können Ausnahmen durch die CLR entweder in verwaltetem oder nicht verwaltetem Code ausgelöst und abgefangen werden. Nicht verwalteter Code kann sowohl SEH-Ausnahmen im C++-Format als auch COM-basierte HRESULTS enthalten.
In diesem Abschnitt
- Übersicht über Ausnahmen
Übersicht über Ausnahmen der Common Language Runtime.
- Exception-Klasse und Exception-Eigenschaften
Beschreibt die Elemente eines Ausnahmeobjekts.
- Ausnahmenhierarchie
Beschreibt die grundlegendsten Ausnahmen.
- Grundlagen der Ausnahmebehandlung
Erläutert das Behandeln von Ausnahmen mit den Anweisungen catch, throw und finally.
- Empfohlene Vorgehensweise für die Ausnahmebehandlung
Beschreibt empfohlene Methoden zur Ausnahmebehandlung.
- Behandeln von COM-Interop-Ausnahmen
Erläutert die Behandlung von Ausnahmen, die in nicht verwaltetem Code ausgelöst und abgefangen wurden.
Referenz
- Exception-Klasse
Enthält Referenzinformationen über die Klasse, von der alle Ausnahmen geerbt werden.
- ApplicationException-Klasse
Enthält Referenzinformationen über die Klasse, von der alle durch Anwendungen ausgelösten Ausnahmen abgeleitet werden.
- SystemException-Klasse
Enthält Referenzinformationen über die Klasse, von der alle durch das System ausgelösten Ausnahmen abgeleitet werden.
Verwandte Abschnitte
- Erweiterte COM-Interoperabilität
Erläutert, wie Ausnahmen bei Übergängen zwischen verwaltetem und nicht verwaltetem Code funktionieren.
- Gewusst wie: Zuordnen von HRESULTs und Ausnahmen
Erläutert die Zuordnung von Ausnahmen bei Übergängen zwischen verwaltetem und nicht verwaltetem Code.