WPF:捕获导航错误

WPF:在XBAP中捕获导航错误

(原文地址: http://www.cnblogs.com/mgen/archive/2012/01/13/2321728.html)


解决方案就是使用Application.DispatcherUnhandledException事件,这个事件可以侦听当前应用程序UI线程所有未处理异常,并可以将异常标记为处理从而使应用程序防止崩溃。记住同NavigationFailed事件一样,把Handled属性标记为true。

private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)

{

    MessageBox.Show(e.Exception.Message);

    e.Handled = true;

}


原文如下:

在普通WPF程序中本来是可以通过NavigationFailed事件的。(可以通过Application类,NavigationWindow类,NavigationService类,Frame类。它们都有NavigationService事件)。可以在XBAP中,这招貌似不能用。

 

比如随便弄了非法导航链接:

<Hyperlink NavigateUri="httppppp://www.a.com">link</Hyperlink>

 

然后加上Application.NavigationFailed事件:

protected override void OnNavigationFailed(NavigationFailedEventArgs e)

{

    base.OnNavigationFailed(e);

 

    MessageBox.Show(e.Exception.Message);

    e.Handled = true;

}

 

运行后点击链接,结果还是错误(IE8):

image

解决方案就是使用Application.DispatcherUnhandledException事件,这个事件可以侦听当前应用程序UI线程所有未处理异常,并可以将异常标记为处理从而使应用程序防止崩溃。记住同NavigationFailed事件一样,把Handled属性标记为true。

private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)

{

    MessageBox.Show(e.Exception.Message);

    e.Handled = true;

}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值