处理WPF应用程序中的所有异常的最佳做法是什么?

时间:2009-06-24 04:51:31

标签: wpf error-handling

您是否有办法处理WPF应用程序中的所有错误异常和崩溃?我知道 DispatcherUnhandledException ,但它只处理UI线程中的异常,不是吗?有没有办法捕获并记录其他线程中的所有异常?和绑定错误呢?你如何在enterprice系统中实现这种要求?

4 个答案:

答案 0 :(得分:10)

AppDomain.CurrentDomain.UnhandledException

将捕获当前线程的任何未处理的异常。这就是我们在应用程序中处理它的方式。

始终处理BindingErrors并将其记录到输出窗口。在发布之前,我们检查输出窗口是否存在绑定错误并尽可能多地修复。

然而,我认为您不希望将绑定错误视为未处理,因为它们大部分可以恢复,并且应该在每次发布之前尽可能地修复。你可以改变Debug> Visual Studio中的Exeptions使其抛出BindingFailure以获取更具体的信息。

HTH,

丹尼斯

答案 1 :(得分:4)

是的,有3个地方:

  1. Application.Run()放入try ... catch
  2. DispatcherUnhandledException
  3. AppDomain.CurrentDomain.UnhandledException
  4. 在任何一种情况下,您都应该显示请原谅我的消息并建议发送错误报告。

    服务器上的服务应该回答“感谢您提交错误报告”或“问题已在下一版本中修复”。请更新'

答案 2 :(得分:3)

请记住,Microsoft不建议捕获所有异常,而是建议仅捕获您知道的(或预期在某些地方发生的异常)。如果您希望获得“Microsoft [Windows | Vista]认证”徽标,则不能捕获未知异常,并且此类例外必须转至Wer

答案 3 :(得分:1)