当BackgroundWorker抛出错误时,如何防止Visual Studio弹出

时间:2012-06-04 23:20:16

标签: c# exception-handling backgroundworker

调试我的应用程序时,我会一直看到这样的消息:

  

xxxxx.exe中出现“xxxx.xxxxx”类型的异常   但未在用户代码中处理。

问题是我有在其DoWork中抛出异常的BackgroundWorkers,然后通过检查RunWorkerCompleted事件中的RunWorkerCompletedEventArgs.Error来处理这些异常 - 它在运行时运行良好。

有没有办法阻止visual studio将这些显示为“未处理”?

这不是将DoWork中的错误返回给UI的正确方法吗?

我尝试使异常扩展ApplicationException并取消在例外对话框中的ApplicationException旁边的框,但它仍然显示。

1 个答案:

答案 0 :(得分:3)

您需要捕获并处理DoWork方法调用的方法中的异常。我的建议是捕获异常,然后使用ReportProgress事件将其报告回接口以便顺利处理/通知。您不希望“吞下”异常,但此报告将允许您优雅地记录异常或以较少侵入方式通知用户。

请注意,您需要使用ReportProgress that allows the use of a custom userState的重载,以便您可以报告正确的进度或附加完整的例外。