The UnhandledExceptionFilter function passes unhandled exceptions to the debugger, if the process is being debugged. Otherwise, it optionally displays an Application Error message box and causes the exception handler to be executed. This function can be called only from within the filter expression of a try-except exception handler.
LONG UnhandledExceptionFilter(
STRUCT _EXCEPTION_POINTERS *ExceptionInfo |
// address of exception info |
); |
The function returns one of the following values:
Value |
Meaning |
EXCEPTION_CONTINUE_SEARCH |
The process is being debugged, so the exception should be passed (as second chance) to the application’s debugger. |
EXCEPTION_EXECUTE_HANDLER |
If the SEM_NOGPFAULTERRORBOX flag was specified in a previous call to SetErrorMode, no Application Error message box is displayed. The function returns control to the exception handler, which is free to take any appropriate action. |
If the process is not being debugged, the function displays an Application Error message box, depending on the current error mode. The default behavior is to display the dialog box, but this can be disabled by specifying SEM_NOGPFAULTERRORBOX in a call to the SetErrorMode function.
The system uses UnhandledExceptionFilter internally to handle exceptions that occur during process and thread creation.
EXCEPTION_POINTERS, GetExceptionInformation, SetErrorMode, SetUnhandledExceptionFilter, UnhandledExceptionFilter