【问题标题】:WPF MVVM Light Exception not getting caught by Application_DispatcherUnhandledExceptionWPF MVVM Light Exception 未被 Application_DispatcherUnhandledException 捕获
【发布时间】:2011-04-01 05:54:40
【问题描述】:

我正在为 WPF 应用程序使用 MVVM 轻量级工具包。不知何故,在 View/ViewModel 中抛出的任何异常都不会调用 Application_DispatcherUnhandledException 方法。只有在加载第一个窗口(由 app.xaml 作为启动窗口加载)本身时抛出异常时才会调用它......然后它根本不会被击中.. 还有其他人面临这个问题吗?

谢谢 安舒莉

【问题讨论】:

  • 您好,MVVM Light 工具包不会自己去其他线程。也许你的代码可以,但为了确定,你能给我一个简单的重现,我会调试发生了什么。谢谢!

标签: mvvm-light


【解决方案1】:

听起来异常可能不会发生在 UI 线程上。我不确定框架在幕后做了什么。不管怎样,看看这个: http://www.codeproject.com/Articles/90866/Unhandled-Exception-Handler-For-WPF-Applications.aspx 非 UI 线程会抛出您的方法本身无法捕获的异常 - 您可能还想挂钩 AppDomain。

【讨论】:

  • 您先生拯救了我的一天!一个该死的线程抛出异常并导致整个应用程序崩溃!谢谢!
【解决方案2】:

在 MVVM Light 中,视图模型的异常不会在 UI 线程中引发。下面的代码在 UI 线程中引发异常

App.Current.RootVisual.Dispatcher.BeginInvoke(() => 
            { 
                throw new MyException("Exception occured."); 
            });

感谢这篇文章http://codifying.wordpress.com/2010/12/20/silverlight-unhandled-exception-and-mvvm-light/

【讨论】:

    猜你喜欢
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多