【发布时间】:2017-02-24 08:58:16
【问题描述】:
有没有办法用 MVVM 模式实现全局异常处理。在我现有的情况下,每当 ViewModel 内部发生错误时,应用程序不会崩溃,只是“隐藏”导致错误的代码之后发生的其余绑定(当然,这对最终用户来说是非常误导的,而不是真的,并且永远不应该那样发生)。我不想为 viewModel 中的每个操作都实现 try catch,而且我不喜欢错误异常的静默方式,我真的很想为 WPF 应用程序实现一种处理全局错误的方式。有没有办法用 MVVM 做到这一点?
【问题讨论】:
-
当您说“ViewModel 内部发生错误”时,究竟是什么错误?还是您指的是绑定错误(
System.Windows.Data错误)?你怎么知道错误正在发生? -
好吧,为了简化您的问题的答案,出于测试目的,我调用 throw new Exception();在我的 ViewModel 绑定操作中
-
使用 AppDomain.UnhandledException 处理全局异常适用于除 ViewModel 绑定内部发生的错误之外的所有其他情况
-
当您说“在我的 ViewModel 绑定操作中”时,您的意思是属性 getter 或 setter 正在抛出吗?如果您可以发布一些实际代码,它可能会帮助我们为您提供帮助。