116

什么是第一次机会例外?它是如何以及从何处起源于 .NET 程序的?为什么用那个特殊的名字来称呼它(我们在谈论什么“机会”)?

4

5 回答 5

88

这是一个调试概念。基本上异常首先被抛出到调试器,然后到实际程序,如果它没有被处理,它会第二次被抛出到调试器,让你有机会在应用程序之前和之后在你的 IDE 中对它做一些事情本身。这似乎是 Microsoft Visual Studio 的一项发明。

于 2009-02-19T10:37:29.030 回答
24

抛出异常时会引发第一次机会异常通知。第二次机会通知是当它没有被捕获时。(机会——有机会闯入调试器中的代码)。

第一次和第二次机会异常处理

于 2009-02-19T10:40:09.227 回答
4

我刚开始使用调试器并遇到了这个问题。在我的研究中,我发现了 MSDN 博客文章什么是第一次机会异常?这为我清除了它。

对我来说,这篇博文的最大收获是它指的是对调试器的通知,而不是我的代码必须处理的事情,最重要的是,

“第一次机会异常消息通常并不意味着代码中存在问题。”

于 2014-07-08T05:36:28.453 回答
0

调试应用程序时,只要遇到异常,调试器就会收到通知。此时,应用程序被挂起,调试器决定如何处理异常。第一次通过这种机制称为“第一次机会”异常。

根据调试器的配置,它要么恢复应用程序并传递异常,要么让应用程序暂停并进入调试模式。如果应用程序处理了异常,它会继续正常运行。

首次机会异常消息通常并不意味着代码中存在问题。对于优雅地处理异常的应用程序/组件,第一次机会异常消息让开发人员知道遇到并处理了异常情况。

于 2014-07-31T13:38:12.417 回答
0

从开发人员的角度来看,它更多地涉及第二次机会异常,因为这意味着它没有在代码中处理;因此应用程序将停止。

第一次机会可能有很多,但是从开发的角度来看,需要更多关注的是第二次机会,因为它会导致应用程序崩溃。

于 2015-04-13T13:15:43.570 回答