CFileDialog在debugging器窗口中发布“第一次机会exception”

我的Windows应用程序使用以下用于打开文件的C ++ / MFC代码:

CFileDialog fd(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_EXPLORER, NULL, hParentWnd ? CWnd::FromHandle(hParentWnd) : NULL); fd.m_pOFN->Flags &= ~(OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT | OFN_NODEREFERENCELINKS); fd.m_pOFN->Flags |= OFN_FILEMUSTEXIST; INT_PTR nRes = fd.DoModal(); //This call causes the warning 

它运行良好,但我在VS 2008中的debugging器输出窗口中收到以下消息:

MyApp.exe中0x00007ffb653d5bf8的第一次机会exception:0x000006BA:RPC服务器不可用。

这是我需要关心的吗?

一次机会例外的原因是有用的:

  • 乍一看异常似乎处理,但实际上不是。 (您的应用程序确实有一个异常处理程序,但最终会重新抛出该异常。)
  • 该异常出现在调试器中,但事实上并非如此。 (您的应用程序确实有一个异常处理程序,但它只是记录异常并中止程序,与上面类似)。
  • 处理异常,但指出了一个更深层次的问题,应该加以解决。

一次机会例外的原因可能是无用的:

  • 异常处理,并没有指出任何你应该担心的。
  • 处理异常,并指出真正的问题,但一个不能修复,只能处理。

调试器无法知道这些适用,这是你作为一个开发人员的工作。 根据问题中的信息,我猜测这是第四个重点,这意味着当抛出异常类型时,最好不要让调试器中断。

一般来说,如果你只能得到第一次机会的异常信息,但一切正常,可能没有什么可担心的。 这意味着有一个例外,但是这个例外被捕获,看似正确的处理。