是否调试过应用程序并在输出窗口中看到有关“First Chance”异常的消息?有没有想过:

  • 什么是First Chance Exception?
  • 第一次机会异常是否意味着我的代码中存在问题?

在调试应用程序时,每当此时遇到异常,调试器就会收到通知,应用程序将挂起,调试器将决定如何处理异常。第一次通过此机制称为“第一次机会”异常。根据调试器的配置,它将恢复应用程序并传递异常,或者使应用程序挂起并进入调试模式。如果应用程序处理异常,它将继续正常运行。
在Visual Studio中,您可能会在输出窗口中看到如下消息:

First Chance Exception是什么?-LMLPHP

在Windbg里如下:

First Chance Exception是什么?-LMLPHP

如果应用程序不处理异常,则重新通知调试器。这被称为“second chance”异常。调试器再次挂起应用程序并确定如何处理此异常。通常,调试器被配置为在第二次出现异常(未处理)时停止,并进入调试模式,允许您进行调试。

“First Chance Exception”是否意味着我的代码中存在问题?第一次出现异常消息通常并不意味着代码中有问题。对于能够优雅地处理异常的应用程序/组件,“First Chance Exception”消息会让开发人员知道遇到了异常情况并得到了处理。对于没有异常处理的代码,调试器将收到第二次机会的异常通知,并将在出现未处理的异常时停止。

05-27 14:57