捕获Application.DoEvents()时捕获的异常

时间:2012-01-25 04:56:16

标签: c# .net exception

我是.Net的新手,我想知道为什么这段代码仍会引发未处理的异常。

try
{
    Application.DoEvents();
}
catch
{
}

有没有人有任何想法? 此代码在事件处理程序中调用。它抛出NullReferenceException。有趣的是,当我尝试在此代码之前放置断点时,异常不会被抛出。仅当我让代码连续运行时才会发生异常。

2 个答案:

答案 0 :(得分:0)

注意使用Application.DoEvents(),大部分时间用于错误的事情,比如在时间花费过程中更新进度条,可以通过异步编程完成。 你无法捕捉到所有异常,请告诉我们提出了什么异常。

答案 1 :(得分:0)

也可能是当你运行没有断点的应用程序时,DoEvents允许执行另一段代码,而 代码段正在抛出异常。

您应该检查异常的StackTrace以查看它指向您的位置(或在此处发布堆栈跟踪,我们可以查看它)。如果是这种情况,当您使用断点和步进时可能没有看到异常,因为DoEvents和线程不会以相同的方式触发。

如果在DoEvents期间从其他地方抛出异常,这也解释了为什么你得到一个未处理的异常,即使上面的代码试图破坏任何异常。