MVVMLight中的异常处理

3
我们正在使用MVVMLight和WPF。我们的视图和ViewModel位于不同的项目中。在视图中发生的所有未处理异常都可以由app.xaml.cs文件处理,但我们也希望通过提供一些集中的异常处理机制来捕获来自ViewModel的未处理异常,而不是在每个函数中编写try..catch。请建议我们如何实现上述内容。 谢谢
1个回答

5

未处理的ViewModel异常也可以在App.xaml.cs中处理。这两者之间应该没有太大的区别。App.xaml.cs是整个应用程序的中心点,您可以在其中处理所有未处理的异常。

顺便说一下:我不建议将ViewModel和View拆分为不同的程序集,因为这样做会带来其他问题。请参见我的帖子这里,了解原因。


谢谢你的评论,Pavlo。由于某些原因,我们将应用程序分成了不同的项目,例如Views和ViewModels。我不确定如何处理在ViewModels项目中引发的异常,而这个项目位于另一个项目Views中的app.xaml.cs中。你能指出一些方法吗? - Channa
@Anil - 在您的ViewModel类中发生的所有异常最终都会传递到App.xaml.cs中的异常处理程序(您需要注册DispatcherUnhandledException处理程序和AppDomain.CurrentDomain.UnhandledException处理程序)。 - Pavlo Glazkov
@Anil - 如果我的帖子回答了你的问题,请通过点击帖子左侧的复选框将其标记为答案。如果它有用,您也可以点赞。 - Pavlo Glazkov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接