Export (0) Print
Expand All

Handler Syntax

This section describes the syntax and usage of structured exception handling as implemented in the Microsoft C/C++ Optimizing Compiler. The following keywords are interpreted by the compiler as part of the structured exception-handling mechanism.

KeywordDescription
__tryBegins a guarded body of code. Used with the __except keyword to construct an exception handler, or with the __finally keyword to construct a termination handler.
__exceptBegins a block of code that is executed only when an exception occurs within its associated __try block.
__finallyBegins a block of code that is executed whenever the flow of control leaves its associated __try block.
__leaveAllows for immediate termination of the __try block without causing abnormal termination and its performance penalty.

 

The compiler also interprets the GetExceptionCode, GetExceptionInformation, and AbnormalTermination functions as keywords, and their use outside the appropriate exception-handling syntax generates a compiler error. The following are brief descriptions of these functions.

FunctionDescription
GetExceptionCode Returns a code that identifies the type of exception. This function can be called only from within the filter expression or the exception-handler block.
GetExceptionInformation Returns a pointer to an EXCEPTION_POINTERS structure containing pointers to the context record and the exception record. This function can be called only from within the filter expression of an exception handler.
AbnormalTermination Indicates whether the flow of control left the associated __try block sequentially after executing the last statement in the block. This function can be called only from within the __finally block of a termination handler.

 

 

 

Community Additions

ADD
Show:
© 2014 Microsoft