AbnormalTermination-Makro

Gibt an, ob der __try Block eines Beendigungshandlers normal beendet wurde. Die Funktion kann nur innerhalb des __finally Block eines Beendigungshandlers aufgerufen werden.

Hinweis

Der Microsoft C/C++-Optimierungs-Compiler interpretiert diese Funktion als Schlüsselwort, und die Verwendung außerhalb der entsprechenden Ausnahmebehandlungssyntax generiert einen Compilerfehler.

Syntax

BOOL AbnormalTermination(void);

Parameter

Dieses Makro weist keine Parameter auf.

Rückgabewert

Wenn der __try-Block ungewöhnlich beendet wurde, ist der Rückgabewert nicht zero.

Wenn der __try Block normal beendet wurde, ist der Rückgabewert null.

Hinweise

Der __try-Block wird normalerweise nur beendet, wenn die Ausführung den Block nach dem Ausführen der letzten Anweisung im Block sequenziell verlässt. Anweisungen (z. B. Rückgabe, Goto, Fortsetzung oder Unterbrechung), die dazu führen, dass die Ausführung den __try Block verlassen kann, führt zu einer ungewöhnlichen Beendigung des Blockes. Dies ist der Fall, auch wenn eine solche Anweisung die letzte Anweisung im __try Block ist.

Die abnorme Beendigung eines __try-Block bewirkt, dass das System rückwärts durch alle Stapelframes sucht, um zu ermitteln, ob beendigungshandler aufgerufen werden müssen. Dies kann dazu führen, dass Hunderte von Anweisungen ausgeführt werden, sodass es wichtig ist, eine ungewöhnliche Beendigung eines __try Block aufgrund einer Rückgabe, einesGotos, eines Fortsetzungs- oder Unterbrechungsausbruchs zu vermeiden. Beachten Sie, dass diese Anweisungen keine Ausnahme generieren, auch wenn die Beendigung nicht ungewöhnlich ist.

Um eine ungewöhnliche Beendigung zu vermeiden, sollte die Ausführung weiterhin am Ende des Blockes ausgeführt werden. Sie können auch die __leave-Anweisung ausführen. Die __leave-Anweisung ermöglicht eine sofortige Beendigung des __try-Blocks , ohne eine ungewöhnliche Beendigung und ihre Leistungsstrafe zu verursachen. Überprüfen Sie Ihre Compilerdokumentation, um festzustellen, ob die __leave-Anweisung unterstützt wird.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [nur Desktop-Apps]

Weitere Informationen

Strukturierte Ausnahmebehandlungsfunktionen

Übersicht über strukturierte Ausnahmebehandlung