如果进程被调试,UnhandledExceptionFilter函数将未处理的异常传递给调试器。否则,它可选地显示一个应用程序错误消息框,并导致异常处理程序被执行。只能从尝试 - 除异常处理程序的过滤器表达式中调用此函数。
LONG UnhandledExceptionFilter(
STRUCT _EXCEPTION_POINTERS *【ExceptionInfo】 | //异常信息的地址 |
); |
参数
【ExceptionInfo】
指向EXCEPTION_POINTERS结构,其中包含异常描述和异常时的处理器上下文。该指针是调用GetExceptionInformation函数的返回值。
返回值
该函数返回以下值之一:
值 | 含义 |
EXCEPTION_CONTINUE_SEARCH | 正在调试该进程,因此异常应该被传递给应用程序的调试器(作为第二次机会)。 |
EXCEPTION_EXECUTE_HANDLER | 如果在前一次调用SetErrorMode中指定了SEM_NOGPFAULTERRORBOX标志,则不显示应用程序错误消息框。该函数将控制权返回给异常处理程序,该处理程序可以自由执行任何适当的操作。 |
备注
如果进程未被调试,该函数将显示一个应用程序错误消息框,具体取决于当前的错误模式。默认行为是显示对话框,但是可以通过在调用SetErrorMode函数中指定SEM_NOGPFAULTERRORBOX来禁用该对话框。
系统在内部使用UnhandledExceptionFilter来处理在进程和线程创建期间发生的异常。
也可以看看
EXCEPTION_POINTERS, GetExceptionInformation, SetErrorMode, SetUnhandledExceptionFilter, UnhandledExceptionFilter