問題 在開發一款應用的過程中,我們開發者很難考慮到所有問題,往往會忘記處理一些可能發生的異常。隨之而來的結果就是用戶使用過程中接連不斷的崩潰。所以,我們有必要處理所有未被我們處理的異常。 思路 我們需要做的是,在錯誤發生時保存用戶數據,然後將錯誤直接展示在用戶界面上。 解決 首先,我們打開項目中的 ...
問題
在開發一款應用的過程中,我們開發者很難考慮到所有問題,往往會忘記處理一些可能發生的異常。隨之而來的結果就是用戶使用過程中接連不斷的崩潰。所以,我們有必要處理所有未被我們處理的異常。
思路
我們需要做的是,在錯誤發生時保存用戶數據,然後將錯誤直接展示在用戶界面上。
解決
首先,我們打開項目中的 App.xaml.cs
,修改以下代碼:
public App()
{
this.InitializeComponent();
this.Suspending += OnSuspending;
UnhandledException += OnUnhandledException;
}
在此,我們為 UnhandledException
事件添加了處理方法 OnUnhandledException
。
然後,我們就可以來寫 OnUnhandledException
了:
private async void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
e.Handled = true;
//TODO: 保存用戶數據
await new ContentDialog
{
Title = "發生錯誤",
Content = e.Message,
CloseButtonText = "關閉",
DefaultButton = ContentDialogButton.Close
}.ShowAsync();
}
寫完之後就大功告成了。此後發生未處理的異常時,我們的程式會先保存用戶數據(如果你寫了相關代碼),然後彈出一個 ContentDialog
來顯示發生的錯誤。這樣就徹底和之前的崩潰說拜拜啦。