我正在尝试通读 Matt Pietrek 的文章“关于 Win32 结构化异常处理深度的速成课程”链接here。在标题为Compiler-level SEH的部分中,他写道:
既然您知道 _try 块对应于堆栈上的 EXCEPTION_REGISTRATION 结构,那么 EXCEPTION_REGISTRATION 中的回调函数呢?使用 Win32 术语,异常回调函数对应于过滤表达式代码。为了刷新您的记忆,过滤器表达式是 _except 关键字后括号中的代码。正是这个过滤器表达式代码决定了后续 {} 块中的代码是否会执行。
在这一点上,我有点困惑。一直以来,我一直认为回调函数就是要处理异常的函数,即_except块内的代码。请帮助我理解这一点。
另外,如果filter-expression 代码对应的是回调函数,那么filter-expression 后面的'{}' 里面的代码对应的是什么?