Mar*_* Ba 6 winapi exception seh
一些资源似乎表明,可以使用通知所有异常SetUnhandledExceptionFilter,而不是用于捕获未处理的异常。AddVectoredExceptionHandler
然而,据我所知,在确定是否或在何处处理异常之前, “只是”为程序中引发的每个(SEH)异常调用向量处理程序。
我错过了什么吗?
好评论:
\n\n\n\n\n它不是[替代],回调不承诺任何有关异常处理的信息。那会发生在以后。它充其量只能作为一种诊断工具来解决包含过多 try/catch-em-all 语句的程序的问题。与 .NET AppDomain.FirstChanceException 事件相比,这种功能需要 AVEH。
\n
\xe2\x80\x93 汉斯·帕桑特
\n\n话虽如此 - 在重新阅读文档后我确实同意 - 我认为“混乱”,如果你愿意的话,在我链接到的原始问题中,可能源于最初提出的问题
\n\n\n\n\n它应该捕获并正确处理进程中发生的所有访问冲突异常
\n
当然,您可以使用向量异常处理程序,也就是说,您可以通过 VEH拦截所有内容0xC0000005,但您不知道围绕此的代码是否实际上可以捕获并处理它 - 并且在较低级别或者对于特定情况,捕获访问违规并在捕获站点继续是一种有效的方法。
因此,正如汉斯所说,它充其量只是作为一种诊断工具有用。
\n\n或者,换句话说,如果您将“捕获”异常解释为并在更高级别捕获引发的异常,则向量异常处理程序不会捕获异常。catch__except
唯一VectoredHandler的支持EXCEPTION_CONTINUE_SEARCH:找到一个处理程序和EXCEPTION_CONTINUE_EXECUTION:我从来没有完全掌握其用法。
| 归档时间: |
|
| 查看次数: |
4441 次 |
| 最近记录: |