1

我正在保护我自己的 C++ 代码(Windows x86)免受第三方 COM 对象中的异常影响,并使用以下 SEH 伪代码记录这些异常。

__try {
    hr = m_ComObj->SomeFunc();
} __except ( LogExceptionInfo(GetExceptionCode(), GetExceptionInformation()) ) {
    hr = E_UNEXPECTED;
    m_ComObjCrashed = true;
}

如果 SEH 代码不存在,这种方法是否可能捕获将要处理的异常?

下面的一篇 MSDN 文章提到,默认的未处理异常过滤器将捕获并修复代码在加载的资源中写入内存的情况。在其他情况下,使用 SEH 会干扰理想的默认操作系统行为吗?

Win32™ 结构化异常处理深度速成课程

4

1 回答 1

0

是的,这很合理。

它将捕获 COM 函数中未处理的所有异常

我没有看到任何与默认操作系统行为有关的干扰问题

于 2012-04-11T04:01:16.340 回答