我是.Net的新手,我想知道为什么这段代码仍会引发未处理的异常。
try
{
Application.DoEvents();
}
catch
{
}
有没有人有任何想法? 此代码在事件处理程序中调用。它抛出NullReferenceException。有趣的是,当我尝试在此代码之前放置断点时,异常不会被抛出。仅当我让代码连续运行时才会发生异常。
答案 0 :(得分:0)
注意使用Application.DoEvents()
,大部分时间用于错误的事情,比如在时间花费过程中更新进度条,可以通过异步编程完成。
你无法捕捉到所有异常,请告诉我们提出了什么异常。
答案 1 :(得分:0)
也可能是当你运行没有断点的应用程序时,DoEvents允许执行另一段代码,而 代码段正在抛出异常。
您应该检查异常的StackTrace以查看它指向您的位置(或在此处发布堆栈跟踪,我们可以查看它)。如果是这种情况,当您使用断点和步进时可能没有看到异常,因为DoEvents和线程不会以相同的方式触发。
如果在DoEvents期间从其他地方抛出异常,这也解释了为什么你得到一个未处理的异常,即使上面的代码试图破坏任何异常。