首页 > 其他分享 >wpf异常捕获

wpf异常捕获

时间:2024-08-29 18:05:18浏览次数:7  
标签:UnhandledException Trace 捕获 应用程序 CurrentDomain wpf 异常 void

 protected override void OnStartup(StartupEventArgs e)
 {
     Trace.Listeners.Add(new TextWriterTraceListener("ErrorLog.txt"));
     Trace.AutoFlush = true;
     AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
     Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
     TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
     base.OnStartup(e);
 }

 private void Current_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
 {
     // 主线程UI异常
     Trace.TraceError($"主线程UI异常" +e.Exception.ToString());

     // Prevent default unhandled exception processing
     e.Handled = true;
 }

 private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
 {
     // UnhandledException 其他线程上的异常
     //AppDomain.CurrentDomain.UnhandledException事件处理程序通常用于记录未处理的异常信息,而不是阻止应用程序关闭。当AppDomain.CurrentDomain.UnhandledException事件被触发时,
     //通常意味着应用程序处于不稳定的状态,
     //所以.NET Framework的默认行为是关闭应用程序
     Trace.TraceError($"其他线程上的异常" + (e.ExceptionObject as Exception).ToString());
     
 }

 private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
 {
     //应用程序使用了Task或者async/await,那么你应该处理这个事件
     Trace.TraceError($"应用程序使用了Task或者async/await" + e.Exception.ToString());

     // 调用e.SetObserved()来阻止异常终止进程
     e.SetObserved();
 }

 

标签:UnhandledException,Trace,捕获,应用程序,CurrentDomain,wpf,异常,void
From: https://www.cnblogs.com/liuqijun/p/18387330

相关文章

  • .net Core发布IIS的各种异常解答
    一.IIS启动之后发布项目失败原因以及解决方案1.查看本机应用池模块是否有AspNetCoreMoudleV2,如果没有,需要去微软官网下载一个HostingBundle安装2.查看程序池的.netCLR版本要选择无托管代码3.标识应该选择localsystem二.打开网页提示用户登录数据失败原因以及解决方案1.......
  • WPF Livecharts C# Column name change
    //xaml<Windowx:Class="WpfApp299.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • 如何优雅的处理异常
    一、什么是异常Java语言按照错误严重性,从throwale根类衍生出Error和Exception两大派系。Error(错误):程序在执行过程中所遇到的硬件或操作系统的错误。错误对程序而言是致命的,将导致程序无法运行。常见的错误有内存溢出,jvm虚拟机自身的非正常运行,calss文件没有主方法......
  • wpf prism用法总结
    1、App文件中RegisterTypes方法:此方法中主要是注册、绑定视图、实体的。使用RegisterForNavigation方法,可以将视图注册成导航,且绑定对应的viewmodel,视图被调用后自动绑定这个viewmodel。注册成导航后,相当于公开了此视图允许调用。同时同一个视图可以绑定多个viewmodel。......
  • Python——异常
    内置异常合集Python提供了许多内置的异常类,用于处理不同类型的错误情况。这些异常类大多数都继承自 BaseException,而 Exception 是所有内建的非系统退出类异常的超类。以下是一些常见的Python内置异常及其简要说明:继承自 Exception 的异常ArithmeticError:所有数值计......
  • 全局异常捕获
    全局异常处理@RestControllerAdvice@RestControllerAdvice是SpringFramework4.0引入的一个注解,它用于定义一个类,该类可以处理多个类型的控制器的异常和横切关注点(cross-cuttingconcerns),比如日志记录、安全、数据转换等。这个注解是@Component的特化,意味着使用@RestCont......
  • 不可不知的WPF画笔(Brush)
    在WPF中,屏幕上的所有内容,都是通过画笔(Brush)画上去的。如按钮的背景色,边框,文本框的前景和形状填充。借助画笔,可以绘制页面上的所有UI对象。不同画笔具有不同类型的输出( 如:某些画笔使用纯色绘制区域,其他画笔使用渐变、图案、图像或绘图)。Brush位于System.Windows.Media命名空间,Br......
  • WPF手动实现切换页面
    1、首先主页面<Grid><Grid.ColumnDefinitions><ColumnDefinitionWidth="220"/><ColumnDefinition/></Grid.ColumnDefinitions><GridGrid.Column="1"><G......
  • WPF 现代化开发教程:使用 Microsoft.Extensions.Hosting 和 CommunityToolkit.Mvvm
    介绍随着WPF应用程序的复杂性增加,使用现代化的开发工具和模式变得尤为重要。本教程将指导你如何使用Microsoft.Extensions.Hosting和CommunityToolkit.Mvvm来开发一个现代化的WPF应用程序。这些工具为开发者提供了依赖注入、应用程序生命周期管理、MVVM模式支持等功能。先决......
  • WPF draw thumbs on livecharts and drag drop thumb
    //xaml<Windowx:Class="WpfApp299.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......