Freigeben über


Behandeln und Auslösen von Ausnahmen

Aktualisiert: November 2007

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

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