Windows Phone 7 异常的人性化处理

本文介绍了在Windows Phone 7开发中如何通过修改RootFrame_NavigationFailed函数实现异常处理,使得异常信息能够直接显示在指定页面,并通过将计算机语言转换为自然语言增强用户体验。特别指出,关键代码段`e.Handled=true;`避免了异常最终被Application_UnhandledException函数处理并导致应用关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在学习 Windows Phone 7WP7() 编程时,接触到 WP7 的异常处理。
主要是异常的人性化显示。

在 App.xaml.cs 的 RootFrame_NavigationFailed (自动生成的) 函数中对 e.Handled 进行赋值。
先看未修改的代码:

1 private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)  
2  {  
3             if (System.Diagnostics.Debugger.IsAttached)  
4             {  
5                 // A navigation has failed; break into the debugger  
6                 System.Diagnostics.Debugger.Break();  
7             }  
8 }

修改后的代码:

private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)  
{  
    if (System.Diagnostics.Debugger.IsAttached)  
    {  
        // A navigation has failed; break into the debugger  
        System.Diagnostics.Debugger.Break();  
    }  
       
    e.Handled = true;  
    Page1.ExceptionInfo = e.Exception;  
    (RootVisual as Microsoft.Phone.Controls.PhoneApplicationFrame).Source = new Uri("/Page1.xaml", UriKind.Relative);  
}

将异常信息直接显示在 Page 1 页面的 Text 控件中。当然,如果为了让“用户”看懂异常信息,直接这样显示是不行的。需要将这种“计算机”语言转为自然语言。

其中,关键的一句是:

1 e.Handled = true;

如果没有此句,系统会将异常最终传递到:Application_UnhandledException() 函数中进行处理,并导致应用程序直接关闭。

 

转载于:https://www.cnblogs.com/91program/p/5206514.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值