Handlersyntaxis
In deze sectie worden de syntaxis en het gebruik van gestructureerde uitzonderingsafhandeling beschreven, zoals geïmplementeerd in de Microsoft C/C++ Optimizeing Compiler. De volgende trefwoorden worden door de compiler geïnterpreteerd als onderdeel van het gestructureerde mechanisme voor het afhandelen van uitzonderingen.
Trefwoord | Beschrijving |
---|---|
__try | Begint een beveiligde codetekst. Wordt gebruikt met het trefwoord __except om een uitzonderingshandlerte maken of met het trefwoord __finally om een beëindigingshandlerte maken. |
__except | Hiermee wordt een codeblok gestart dat alleen wordt uitgevoerd wanneer er een uitzondering optreedt binnen het bijbehorende __try blok. |
__finally | Hiermee wordt een codeblok gestart dat wordt uitgevoerd wanneer de stroom van het besturingselement het bijbehorende __try blok verlaat. |
__leave | Hiermee kunt u het __try blokkeren onmiddellijk beëindigen zonder abnormale beëindiging en de prestatiestraf te veroorzaken. |
De compiler interpreteert ook de GetExceptionCode, GetExceptionInformationen AbnormalTermination functies als trefwoorden, en hun gebruik buiten de juiste syntaxis voor uitzonderingsafhandeling genereert een compilerfout. Hier volgen korte beschrijvingen van deze functies.
Functie | Beschrijving |
---|---|
GetExceptionCode | Retourneert een code die het type uitzondering aangeeft. Deze functie kan alleen worden aangeroepen vanuit de filterexpressie of het uitzonderingshandlerblok. |
GetExceptionInformation- | Retourneert een aanwijzer naar een EXCEPTION_POINTERS structuur met aanwijzers naar de contextrecord en de uitzonderingsrecord. Deze functie kan alleen worden aangeroepen vanuit de filterexpressie van een uitzonderingshandler. |
AbnormalTermination- | Geeft aan of de stroom van het besturingselement de gekoppelde __try sequentieel heeft verlaten na het uitvoeren van de laatste instructie in het blok. Deze functie kan alleen worden aangeroepen vanuit het __finally blok van een beëindigingshandler. |