Avalonia 捕获全局异常(UI线程 和 非UI线程),增加客户端的稳定性

embedded/2024/10/18 9:19:17/

在 App.axaml.cs 中,App类添加下列事件;

1.重写 OnFrameworkInitializationCompleted ,会在程序初始化完成后触发

2. 绑定AppDomain中当前域的事件

            AppDomain.CurrentDomain.UnhandledException += HandleGlobalException; //UI线程
            AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;//非UI线程

   public override void OnFrameworkInitializationCompleted(){try{if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop){var main = new MainWindow();main.DataContext = new VM_MainWindow(main);desktop.MainWindow = main;}else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform){var main = new MainView();                singleViewPlatform.MainView = main;}base.OnFrameworkInitializationCompleted();//全局异常捕获AppDomain.CurrentDomain.UnhandledException += HandleGlobalException;AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;}catch(Exception ex){LogOperate.Error("程序启动发生异常", ex);Environment.Exit(0);}}private void CurrentDomain_ProcessExit(object? sender, EventArgs e){ThreadOperate.OnExit();}private void HandleGlobalException(object sender, UnhandledExceptionEventArgs e){try{// 处理全局异常的逻辑Exception exception = (Exception)e.ExceptionObject;//Console.WriteLine($"Unhandled Exception: {exception.Message}");LogOperate.Error("HandleGlobalException 全局异常", exception);}catch(Exception ex){LogOperate.Error("HandleGlobalException 全局异常[catch]", ex);}        }


http://www.ppmy.cn/embedded/6937.html

相关文章

文心一言vsGPT-4全面对比

文心一言和GPT-4都是当前非常先进的人工智能语言模型,它们各自具有独特的特点和优势。以下是对这两款工具的全面比较: 文心一言是由百度开发的一款大型人工智能语言模型,它基于强大的深度学习技术和海量的数据资源,具备出色的语言…

从C到JAVA之学习JAVA的第一周笔记

文章目录 java语言概述JDK与JRE编写执行过程第一份java代码解读编写编译运行其他 注释三种注释方法 java API文档关键字标识符数据类型基本数据类型自动类型提升规则引用数据类型 string概述String与基本数据类型的变量间的运算 运算符键盘录入运行控制语句数组定义与静态初始化…

ElasticSearch 集群添加用户安全认证功能(设置访问密码)

前言 在6.8之前免费版本并不包含安全认证功能,之后版本有开放一些基础认证功能;为了防止各种事故,一般都会设置es集群的访问密码;但是在我尝试设置访问密码的时候发现,设置访问密码的前提必须要设置集群证书&#xff0…

排序之插入排序:从斗地主到插入排序

目录 1.斗地主如何摸牌 2.从摸牌想到插入排序 3.完成插入排序 4.结束语 1.斗地主如何摸牌 不知道各位是否玩过几乎人人都玩过的斗地主游戏呢?相必各位或多或少都玩过一点,再没玩过也看别人打过。今天博主就将从这个游戏为大家讲解我们的插入排序。 在…

【linux】centos7 开机 进单用户模式修改root密码

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

实时角色控制:基于相位函数神经网络的研究

引言 计算机动画和虚拟现实技术在现代数字娱乐和仿真中扮演着越来越重要的角色。实现自然流畅、符合用户意图的角色控制是这些技术成功的关键。近年来,随着深度学习技术的快速发展,基于数据驱动的角色控制方法备受关注。本文介绍了一种新颖的基于相位函…

PDF被加密无法打印的解决办法

思路很清晰:先解密→再打印 分享四个工具,可以轻松解密PDF: ⭐i love pdf I LOVE PDF是一款免费的PDF网站,界面设计简洁,首页没有广告,但每个功能的操作界面是有广告的,不会影响使用。 部分功…

Java一键发送邮件:封装好的工具类详解

一、引言 在Java应用中,邮件发送功能经常用于通知、验证等场景。然而,每次发送邮件都需要编写大量的代码来配置SMTP服务器、认证信息、邮件内容等,这不仅效率低下,而且容易出错。为了解决这个问题,我们可以封装一个邮…