Freigeben über


Ausnahmeverarbeitung

Wenn ein Programm ausgeführt wird, können einige der Regel abweichende Anforderungen und Fehler, die "Ausnahmen" bezeichnet werden, auftreten. Diese enthalten möglicherweise ausgeführt, Ressourcenzuordnungsfehler genügend Arbeitsspeicher und Fehler ein, Dateien zu finden.

Die Microsoft Foundation Class-Bibliothek verwendet ein Ausnahmebehandlungsschema, das eng nach dem modelliert wird, das vom ANSI-Normungsausschuss für C++ enthält. Ein Ausnahmehandler muss installiert werden, bevor eine Funktion aufruft, die möglicherweise eine Regel abweichende Situation entdeckt. Wenn die Funktion eine Regel abweichende Zustand auftritt, löst sie eine Ausnahme aus und Steuerelement wird z Ausnahmehandler übergeben.

Einige Makros, die mit der Microsoft Foundation Class-Bibliothek enthalten sind, installieren Ausnahmehandler. Einige andere globale Funktionen erleichtern, spezielle Ausnahmen auszulösen und Programme zu beenden, falls erforderlich. Diese Makros und globalen Funktionen werden in die folgenden Kategorien:

  • Ausnahmemakros, die den Ausnahmehandler strukturieren.

  • Ausnahme-Auslösen von Funktionen, die Ausnahmen bestimmter Typen generieren.

  • Beendigungsfunktionen, die dass verursachen.

Beispiele und weitere Details finden Sie im Artikel Ausnahmen.

Ausnahme-Makros

TRY

Legt einen Codeblock für die Ausnahmeverarbeitung fest.

CATCH

Legt einen Codeblock für das Abfangen einer Ausnahme vom vorherigen TRY-Block fest.

CATCH_ALL

Legt einen Codeblock für das Abfangen aller Ausnahmen vom vorherigen TRY-Block fest.

AND_CATCH

Legt einen Codeblock für ansprechende zusätzliche Ausnahmetypen vom vorherigen TRY-Block fest.

AND_CATCH_ALL

Legt einen Codeblock für das Abfangen aller anderen zusätzliche Ausnahmetypen fest, die in einem vorherigen TRY-Block ausgelöst werden.

END_CATCH

Beendet letzten CATCH oder den Codeblock AND_CATCH.

END_CATCH_ALL

Beendet den letzten CATCH_ALL Codeblock.

THROW

Löst eine bestimmte Ausnahme aus.

THROW_LAST

Löst die gerade behandelte Ausnahme dem folgenden äußeren Handler aus.

Ausnahme-Auslösen von Funktionen

AfxThrowArchiveException

Löst eine Archivausnahme aus.

AfxThrowFileException

Löst eine Dateiausnahme aus.

AfxThrowMemoryException

Löst eine Arbeitsspeicherausnahme aus.

AfxThrowNotSupportedException

Löst eine nicht unterstützte Ausnahme aus.

AfxThrowResourceException

Löst eine Windows Ressource-NOT-gesuchte Ausnahme aus.

AfxThrowUserException

Löst eine Ausnahme in eine benutzerinitiierte Programmaktion aus.

MFC stellt zwei Ausnahme-auslösende Funktionen speziell für OLE-Ausnahmen bereit:

OLE-Ausnahme-Funktionen

AfxThrowOleDispatchException

Löst eine Ausnahme in einer OLE-Automatisierungs-Funktion aus.

AfxThrowOleException

Löst eine OLE-Ausnahme aus.

Um Datenbankausnahmen zu unterstützen, stellen die Datenbankklassen zwei Ausnahmeklassen, CDBException und CDaoException sowie globale Funktionen um die Ausnahmetypen zu unterstützen:

DAO-Ausnahme-Funktionen

AfxThrowDAOException

Löst einen CDaoException aus dem eigenen Code aus.

AfxThrowDBException

Löst einen CDBException aus dem eigenen Code aus.

MFC stellt die folgenden Beendigungsfunktion:

Beendigungs-Funktionen

AfxAbort

Wird aufgerufen, um eine Anwendung beendet, wenn ein schwer wiegender Fehler auftritt.

Siehe auch

Referenz

CException-Klasse

Konzepte

MFC-Makros, globale Funktionen und globale Variablen