在某些VC ++代码块中,我遇到了第一次机会异常 -
myapp.EXE中0x77e4bef7的第一次机会异常:Microsoft C ++异常:内存位置0x0013ee04处的ComUtil :: ComError ..
我可以在Visual Studio的Output窗口中看到上面的异常。 我怎么能抓住这个例外。我正在使用Visual Studio 2008进行开发。
答案 0 :(得分:6)
它只是一个调试器通知,并没有任何意义。你像往常一样捕获异常,只需尝试/捕获。在这种情况下,您需要catch (_com_error& ex)
,它会告诉您COM方法调用失败的原因。
“第一次机会”异常很有用,因为您可以要求调试器在抛出异常时停止。这可以让你找到为什么被抛出。您使用Debug + Exceptions,勾选C ++异常的Thrown复选框。在_com_error异常的情况下,您不会非常感兴趣,您只需看到从#import指令获得的自动生成的包装器。如果您不想看到通知的噪音,只需右键单击“输出”窗口并取消选中“异常消息”。