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. |