Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En avslutningshanterare ser till att ett visst kodblock körs när kontrollflödet lämnar en viss skyddad kodtext. En avslutningshanterare består av följande element.
- En skyddad kodtext
- Ett block med avslutningskod som ska köras när kontrollflödet lämnar den skyddade delen
Avslutningshanterare deklareras i språkspecifik syntax. Med hjälp av Microsoft C/C++ Optimizeing Compiler implementeras de med hjälp av __try och __finally. Mer information finns i Handler Syntax.
Den skyddade kodtexten kan vara ett kodblock, en uppsättning kapslade block eller en hel procedur eller funktion. När det skyddade kodstycket exekveras, kommer blocket med termineringskoden att exekveras. Det enda undantaget är när tråden avslutas under körningen av den skyddade kroppen (till exempel om funktionen ExitThread eller ExitProcess anropas inifrån den skyddade kroppen).
Avslutningsblocket körs när kontrollflödet lämnar den skyddade kroppen, oavsett om den skyddade kroppen avslutades normalt eller onormalt. Den skyddade kroppen anses ha avslutats korrekt när den sista satsen i blocket körs och kontrollen fortsätter sekventiellt in i avslutningsblocket. Onormal avslutning inträffar när kontrollflödet lämnar det skyddade blocket på grund av ett undantag eller på grund av en kontrollsats som return, goto, breakeller continue. Funktionen AbnormalTermination kan anropas inifrån avslutningsblocket för att avgöra om den skyddade sektionen avslutades normalt.