UWP 中的全局异常处理
Posted zhs852
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UWP 中的全局异常处理相关的知识,希望对你有一定的参考价值。
问题
在开发一款应用的过程中,我们开发者很难考虑到所有问题,往往会忘记处理一些可能发生的异常。随之而来的结果就是用户使用过程中接连不断的崩溃。所以,我们有必要处理所有未被我们处理的异常。
思路
我们需要做的是,在错误发生时保存用户数据,然后将错误直接展示在用户界面上。
解决
首先,我们打开项目中的 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
来显示发生的错误。这样就彻底和之前的崩溃说拜拜啦。
相关链接
以上是关于UWP 中的全局异常处理的主要内容,如果未能解决你的问题,请参考以下文章
如何处理异步函数 UWP App GetFileFromPathAsync(path) 中的异常;