关于UnhandledExceptionFilter的“应用程序定义”究竟是什么?

时间:2010-08-31 17:09:38

标签: winapi seh structured-exception

MSDN describes UnhandledExceptionFilter如下所示:“应用程序定义的函数,如果正在调试进程,则将未处理的异常传递给调试器。”

但是这个功能显然是由操作系统提供的,在kernel32.dll中根据同一页面提供。

那么为什么他们称之为应用程序定义的函数

2 个答案:

答案 0 :(得分:3)

是的,非常笨拙的语言。它是函数的原型定义。您可以将其与__except关键字一起使用,或作为SetUnhandledExceptionFilter()的参数使用。要么使你的'应用程序定义函数'。

如果不这样做,则会有默认处理,调试器会在未处理的异常处自动停止。我认为这是“将异常传递给调试器”的含义。 SEH的SDK文档值得全面失败。

答案 1 :(得分:1)

UnhandledExceptionFilter()本身不是内核提供的自己的函数(尽管内核确实实现了自己的默认实现,直到用你自己的方式覆盖它)。您引用的UnhandledExceptionFilter()文档描述了一个函数原型,如果您选择实现自己的函数并将其传递给SetUnhandledExceptionFilter()函数以在内核中激活它,则必须遵循该函数原型。