Answers:
这是一个调试概念。基本上抛出异常给调试器第一,然后到如果不处理它被扔在了调试器的实际程序第二的时候,给你一个机会,之前和应用程序本身后,用它做的东西在你的IDE。这似乎是Microsoft Visual Studio的发明。
catch
对此有控制,则转到那里。如果没有catch
阻止,则会出现“第二次机会”中断,这一次消息是YourApp.exe中发生了'foo'类型的未处理异常。从这里开始,尝试继续或进一步前进将不会成功。
引发异常时会引发首次机会异常通知。第二次机会通知是未捕获时。(机会-借此机会在调试器中侵入代码)。
我刚开始使用调试器并遇到了这个问题。在我的研究中,我发现了MSDN博客文章什么是第一次机会异常?那为我清除了。
对我而言,该博客文章的主要收获是,它指的是通知调试器,而不是我的代码不一定要处理的事情,而且最重要的是,“首次机会异常消息通常并不意味着在调试器中存在问题。码。”
从开发人员的角度来看,它更多地涉及第二次机会异常,因为这意味着它没有在代码中处理;因此应用程序将停止。
第一次机会可能很多,但是从开发的角度来看,更多需要关注的是第二次机会,因为这将导致应用程序崩溃。
finally
块运行之前。一旦系统确定谁将捕获异常(并确定确实有人将要捕获),系统将开始展开堆栈。请注意,如果从某个finally
块引发了异常……