• 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 信息。
    但此信息对一般用于来说,是不友好的,需要进一步的处理才能满足真正产品的求。

  • 相关阅读:
    剑指Offer--反转链表
    剑指Offer--链表中倒数第k个结点
    面向对象的六原则一法则
    常见错误汇总
    记人生第一次CF体验
    Game of Credit Cards
    Shell Game (模拟)
    数列分块入门 1 LibreOJ
    范德蒙恒等式
    C. Vasya and String (尺取法)
  • 原文地址:https://www.cnblogs.com/91program/p/5206274.html
Copyright © 2020-2023  润新知