zoukankan      html  css  js  c++  java
  • UWP 中的全局异常处理

    问题

    在开发一款应用的过程中,我们开发者很难考虑到所有问题,往往会忘记处理一些可能发生的异常。随之而来的结果就是用户使用过程中接连不断的崩溃。所以,我们有必要处理所有未被我们处理的异常。

    本文介绍了 UI 线程的异常处理,如需处理后台线程的异常,请参阅 win10 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 来显示发生的错误。这样就彻底和之前的崩溃说拜拜啦。

    相关链接

  • 相关阅读:
    爱信诺面试总结
    项目进展日志6
    项目进展日志5
    项目进展日志4
    项目进展日志3
    项目进展日志2
    项目阶段总结
    项目进展日志
    事物的ACID特性
    5.27作业
  • 原文地址:https://www.cnblogs.com/zhs852/p/uwp-global-error-handler.html
Copyright © 2011-2022 走看看