Freigeben über


Handlersyntax

In diesem Abschnitt werden die Syntax und die Verwendung der strukturierten Ausnahmebehandlung beschrieben, wie sie im Microsoft C/C++-Optimierungscompiler implementiert ist. Die folgenden Schlüsselwörter werden vom Compiler als Teil des strukturierten Ausnahmebehandlungsmechanismus interpretiert.

Schlüsselwort Beschreibung
__try Beginnt einen geschützten Codetext. Wird mit dem schlüsselwort __except zum Erstellen eines Ausnahmehandlersoder mit dem __finally Schlüsselwort verwendet, um einen Beendigungshandlerzu erstellen.
__except Beginnt einen Codeblock, der nur ausgeführt wird, wenn eine Ausnahme innerhalb des zugeordneten __try Blocks auftritt.
__finally Beginnt einen Codeblock, der ausgeführt wird, wenn der Steuerungsfluss den zugeordneten __try Block verlässt.
__leave Ermöglicht die sofortige Beendigung des __try Blocks, ohne eine ungewöhnliche Beendigung und seine Leistungseinbußen zu verursachen.

 

Der Compiler interpretiert auch die GetExceptionCode, GetExceptionInformationund AbnormalTermination Funktionen als Schlüsselwörter, und ihre Verwendung außerhalb der entsprechenden Ausnahmebehandlungssyntax generiert einen Compilerfehler. Im Folgenden sind kurze Beschreibungen dieser Funktionen aufgeführt.

Funktion Beschreibung
GetExceptionCode- Gibt einen Code zurück, der den Ausnahmetyp identifiziert. Diese Funktion kann nur innerhalb des Filterausdrucks oder des Ausnahmehandlerblocks aufgerufen werden.
GetExceptionInformation- Gibt einen Zeiger auf eine EXCEPTION_POINTERS Struktur zurück, die Zeiger auf den Kontextdatensatz und den Ausnahmedatensatz enthält. Diese Funktion kann nur innerhalb des Filterausdrucks eines Ausnahmehandlers aufgerufen werden.
abnormalTermination Gibt an, ob der Steuerungsfluss den zugeordneten __try Block sequenziell nach ausführung der letzten Anweisung im Block verlassen hat. Diese Funktion kann nur innerhalb des __finally Blocks eines Beendigungshandlers aufgerufen werden.