Trong hướng dẫn này, bạn sẽ tìm hiểu cách cập nhật ứng dụng để hiển thị trang lỗi bất cứ khi nào Tình huống ngoại lệ không thể xử lí được xảy ra trong ứng dụng. Nhiệm vụ cho thấy cách xử lý các lỗi cũng như cách thêm các trang vào ứng dụng của bạn và điều hướng giữa chúng. Bài đăng này là một phần của loạt bài hướng dẫn Windows Phone của chúng tôi.
1. Thêm một trang mới vào dự án. Trong Solution Explorer, nhấp chuột phải vào HelloPhone tùy chọn dự án và Thêm vào Vật phẩm mới. bên trong Thêm mục mới hộp thoại, chọn Trang Chân dung Windows Phone từ danh sách các mẫu đã cho, hãy đặt tên thành ErrorPage.xaml và sau đó nhấp Thêm vào.
2 trong ErrorPage.xaml, xác định vị trí LayoutRootLưới và thay thế các điều khiển con của nó bằng đánh dấu XAML được đánh dấu màu xanh lam. XAML này xác định tiêu đề ứng dụng và tiêu đề trang, cả hai đều có tên là lỗi. Nó cũng định nghĩa TextBlock đối tượng được chỉ định là x: Name =”ErrorText” sẽ giữ văn bản lỗi từ bất kỳ ngoại lệ nào trong tương lai.
… … ?> var13 ->
3. Nhấn F7 để mở tệp mã sau của trang mới hoặc nhấp chuột phải ErrorPage.xaml trong Solution Explorer và chọn Xem mã. Sau đó, chèn đoạn mã sau vào ErrorPage lớp học tại vị trí được đánh dấu. Điều này thiết lập một ngoại lệ đối tượng được gắn với ErrorText.
public partial class ErrorPage: PhoneApplicationPage { public ErrorPage() { InitializeComponent(); } public static Exception Exception; // Executes when the user navigates to this page. protected override void OnNavigatedTo(Microsoft.Phone.Navigation.PhoneNavigationEventArgs e) { ErrorText.Text = Exception.ToString(); } }
4. Sau đó, kết nối một trình xử lý sự kiện để điều hướng đến trang lỗi và hiển thị thông báo lỗi bất cứ khi nào một ngoại lệ chưa được xử lý xảy ra. Trong Solution Explorer, click chuột phải App.xaml và chọn Xem mã để mở lớp mã-đằng sau của Ứng dụng lớp học.
5. Tìm Application_UnhandledException xử lý sự kiện và chèn đoạn mã sau vào vị trí được đánh dấu ngay trước dấu ngoặc đóng. Các Application_UnhandledException là một mạng lưới an toàn, nơi tất cả các ngoại lệ chưa được giải quyết của đơn đăng ký của bạn sẽ kết thúc. Bây giờ bạn kết nối đối tượng ngoại lệ với ErrorPage.Exceptionvà khi bạn duyệt đến trang lỗi, nó sẽ lấy giá trị văn bản của đối tượng ngoại lệ (Exception.ToString ();) và hiển thị nó trên trang. Điều này sẽ rất hữu ích khi bạn bắt đầu gỡ lỗi ứng dụng của mình trên thiết bị thực.
// Code to execute on Unhandled Exceptions private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) { if (System.Diagnostics.Debugger.IsAttached) { // An unhandled exception has occurred, break in the debugger System.Diagnostics.Debugger.Break(); } e.Handled = true; ErrorPage.Exception = e.ExceptionObject; (RootVisual as Microsoft.Phone.Controls.PhoneApplicationFrame).Source = new Uri('/ErrorPage.xaml', UriKind.Relative); }