Windows Phone 7 UI 异常处理

慢慢开始 Windows Phone 7 编程的学习,工作是比较忙与累,但是还是想学习一下 Windows Phone 7 编程和 Windows 8 编程。

计划:一步步来吧,先培训兴趣,再回过头来好好看看 C# 语言。

今天先看了一下 UI 的异常处理的实现:新建一 Silverlight for Windows Phone 7/Windows Phone Application 工程。
在工程中增加一个页面,例如: Page1.xaml,然后在页面中增加一个文本框。示例代码如下:

 1 namespace WindowsPhoneApplicationHello  
 2 {  
 3     public partial class Page1 : PhoneApplicationPage  
 4     {  
 5         public static Exception ExceptionInfo;  
 6   
 7         public Page1()  
 8         {  
 9             InitializeComponent();  
10         }  
11           
12         protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)  
13         {  
14             ExceptionText.Text = ExceptionInfo.ToString();  
15         }  
16     }  
17 }  

在源文件 App.xaml.cs 中,自动生成的代码中有两个用于处理错误和异常的函数,分别是:
(1) RootFrame_NavigationFai

 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       e.Handled = true;  
 9       Page1.ExceptionInfo = e.Exception;  
10       (RootVisual as Microsoft.Phone.Controls.PhoneApplicationFrame).Source = new Uri("/Page1.xaml", UriKind.Relative);  
11 }  

led: 处理导航失败
(2) Application_UnhandledException: 处理应用程序所有未处理的
修改 RootFrame_NavigationFailed 函数,增加两行代码。修改后的代码如下:

为了测试代码,故意抛出一个异常。增加一个按键,在按键的处理中加入以下的代码:

1 private void button2_Click(object sender, RoutedEventArgs e)  
2 {  
3      NavigationService.Navigate(new Uri("NoExist.html",UriKind.Relative));  
4 }  

运行结果:当用户点击按键后,在 Page1 页面显示出 error 信息。
但此信息对一般用于来说,是不友好的,需要进一步的处理才能满足真正产品的求。

原文地址:https://www.cnblogs.com/91program/p/5206274.html