2011-03-03 32 views
3

我们将MVVMLight与WPF结合使用。我们的视图& ViewModels驻留在不同的项目中。在视图中发生的所有未处理的异常都可以通过app.xaml.cs文件来处理,但我们也希望通过提供一些集中式异常处理机制来捕获ViewModel中未处理的异常,而不是在每个函数中写入try..catch。请告诉我们如何实现上述目标。 谢谢MVVMLight中的异常处理

回答

5

ViewModels的未处理异常也可以在App.xaml.cs中处理。应该没有太大的区别。 App.xaml.cs是处理所有未处理的异常的整个应用程序的中心点。

边节点:我不建议你将ViewModels和Views分解为不同的程序集,因为这个和其他原因。看我的帖子here描述为什么。

+0

谢谢帕夫洛,您的意见。由于某些原因,我们将我们的应用程序划分为不同的项Views&ViewModels。我不知道如何处理来自位于另一个项目中的app.xaml.cs的ViewModels项目中引发的异常,即Views。你能指出一些方法吗? – 2011-03-03 08:54:42

+0

@Anil - 您的ViewModel类中发生的所有异常最终都会到达您的App.xaml.cs中的异常处理程序(您需要重新分配DispatcherUnhandledException处理程序和AppDomain.CurrentDomain.UnhandledException处理程序)。 – 2011-03-03 09:00:23

+0

现在工作正常。谢谢。 – 2011-03-03 09:39:39