AbnormalTermination
The AbnormalTermination
function indicates whether the try block of a try-finally
statement terminated normally. The function can be called only from within the finally
block of a try-finally statement.
BOOL AbnormalTermination(VOID)
Parameters
This function
has no parameters.
Return Values
If the try
block of the try-finally statement terminated abnormally, the
return value is nonzero.
If the try
block of the try-finally statement terminated normally, the
return value is zero.
Remarks
The try
block terminates normally only if execution leaves the block sequentially after
executing the last statement in the block. Statements (such as return, goto,
continue, or break) that cause execution to leave the try
block result in abnormal termination of the block. This is the case even if
such a statement is the last statement in the try block.
Abnormal
termination of a try block causes the system to search backward through
all stack frames to determine whether any termination handlers must be called.
This can result in the execution of hundreds of instructions, so it is
important to avoid abnormal termination of a try block due to a return,
goto, continue, or break statement. Note that these
statements do not generate an exception, even though the termination is
abnormal.