Handlersyntax
In diesem Abschnitt werden die Syntax und die Verwendung der strukturierten Ausnahmebehandlung beschrieben, wie sie im Microsoft C/C++-Optimierungscompiler implementiert sind. Die folgenden Schlüsselwörter werden vom Compiler als Teil des strukturierten Ausnahmebehandlungsmechanismus interpretiert.
Schlüsselwort | BESCHREIBUNG |
---|---|
__Versuchen | Beginnt einen geschützten Codetext. Wird mit dem __except Schlüsselwort (keyword) zum Erstellen eines Ausnahmehandlers oder mit dem __finally Schlüsselwort (keyword) zum Erstellen eines Beendigungshandlers verwendet. |
__Außer | Startet einen Codeblock, der nur ausgeführt wird, wenn innerhalb des zugeordneten __try blocks eine Ausnahme auftritt. |
__Schließlich | Startet einen Codeblock, der immer dann ausgeführt wird, wenn der Ablauf der Steuerung den zugeordneten __try Block verlässt. |
__leave | Ermöglicht die sofortige Beendigung des __try-Blocks , ohne dass eine abnormale Beendigung und eine Leistungsstrafe verursacht wird. |
Der Compiler interpretiert auch die Funktionen GetExceptionCode, GetExceptionInformation und AbnormalTermination als Schlüsselwörter, und ihre Verwendung außerhalb der entsprechenden Ausnahmebehandlungssyntax generiert einen Compilerfehler. Im Folgenden werden diese Funktionen kurz beschrieben.
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 Ablauf der Steuerung den zugeordneten __try Block sequenziell verlassen hat, nachdem die letzte Anweisung im Block ausgeführt wurde. Diese Funktion kann nur aus dem __finally Block eines Terminierungshandlers aufgerufen werden. |