Dela via


Hanterarsyntax

I det här avsnittet beskrivs syntaxen och användningen av strukturerad undantagshantering som implementerats i Microsoft C/C++ Optimizeing Compiler.This section describe the syntax and usage of structured exception handling as implemented in the Microsoft C/C++ Optimizeing Compiler. Följande nyckelord tolkas av kompilatorn som en del av den strukturerade mekanismen för undantagshantering.

Nyckelord Beskrivning
__try Påbörjar en skyddad kodtext. Används med nyckelordet __except för att skapa en undantagshanterare, eller med nyckelordet __finally för att skapa en avslutningshanterare.
__except Påbörjar ett kodblock som endast körs när ett undantag inträffar inom dess associerade __try block.
__finally Påbörjar ett kodblock som körs när kontrollflödet lämnar dess associerade __try block.
__leave Tillåter omedelbar uppsägning av __try-blocket utan att orsaka onormal uppsägning och dess prestandastraff.

 

Kompilatorn tolkar också GetExceptionCode, GetExceptionInformationoch AbnormalTermination funktioner som nyckelord, och deras användning utanför lämplig syntax för undantagshantering genererar ett kompilatorfel. Följande är korta beskrivningar av dessa funktioner.

Funktion Beskrivning
GetExceptionCode Returnerar en kod som identifierar typen av undantag. Den här funktionen kan bara anropas inifrån filteruttrycket eller undantagshanterarblocket.
GetExceptionInformation Returnerar en pekare till en EXCEPTION_POINTERS struktur som innehåller pekare till kontextposten och undantagsposten. Den här funktionen kan bara anropas inifrån filteruttrycket för en undantagshanterare.
AbnormalTermination Anger om kontrollflödet lämnade den associerade __try blockera sekventiellt efter att den sista instruktionen i blocket har körts. Den här funktionen kan bara anropas inifrån det __finally blocket för en avslutningshanterare.