是否有可能阻止Visual Studio打破BackgroudWorker.DoWork中的异常

问题描述:

问题是应用程序应该以某种方式处理发生在DoWork内部的错误。在我的应用程序的发布版本中,我产生了一个错误,目的是测试它,并没有做它应该做的事情,但是如果我调试了,那么VS将在异常处中断,而不是将它传递给RunWorkerCompleted这就是根据DoWork文档发布后(或不在VS调试器下运行时)会发生。有没有什么办法可以防止VS停止异常,并使它在调试后发布后做它的工作,这样我就可以看到我的代码出了什么问题?是否有可能阻止Visual Studio打破BackgroudWorker.DoWork中的异常

@ChrisF:这是我的代码。我不认为这会帮助很多:

void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
    { 
     if(null == e.Error) OnDownloadComplete(new DownloadCompleteEventArgs(e.Cancelled, null, e.Result as string)); 
     else OnDownloadComplete(new DownloadCompleteEventArgs(false, e.Error, null)); 
    } 

    void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) 
    { 
     throw new Exception("OMG!!!"); 
    } 

如果不能够做什么,我试图做我可以尝试找到另一种方式来找到我的错误。我认为发布更多的代码不是一个好主意,因为它在OnDownloadComplete中纠缠得很好,并且错误可能在任何地方。只需要放弃先调试的可能性。

+0

你可以发布相关的代码。 – ChrisF 2011-01-24 21:47:38

DebuggerHidden

在这里可以用来让异常泡到RunWorkerCompleted事件。

这肯定是重复的,但无论如何......您应该在Visual Studio中打开对话框Debug/Exceptions ...,查找您希望VS忽略的异常,并禁用“抛出”复选框。