5

在调试我的应用程序时,我总是看到这样的消息:

xxxxx.exe 中发生了“xxxx.xxxxx”类型的异常,但未在用户代码中处理。

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

有什么办法可以防止视觉工作室将这些显示为“未处理”?

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

我尝试让我的异常扩展 ApplicationException 并在异常对话框中取消选中 ApplicationException 旁边的框,但它仍然出现。

4

1 回答 1

3

您需要在 DoWork 方法调用的方法中捕获和处理异常。我的建议是捕获异常,然后使用 ReportProgress 事件将其报告回界面以便顺利处理/通知。您永远不想“吞下”异常,但此报告将允许您优雅地记录异常或以较少干扰的方式通知用户。

请记住,您需要使用允许使用自定义 userState 的 ReportProgress的重载,以便您可以报告正确的进度或附加完整的异常。

于 2012-06-04T23:26:44.887 回答