C# 记录致命异常
当我的应用程序崩溃时,我试图记录一个异常。尽管偶尔会捕捉到大多数异常,但我的应用程序还是会崩溃。我真的不知道如何将异常记录到文本文件中。无论我尝试什么似乎都不起作用。我不确定我做错了什么,如果有人能给我指出正确的方向,我将不胜感激 这就是我的代码目前的样子。我使用的是多线程环境C# 记录致命异常,c#,.net,wpf,exception,C#,.net,Wpf,Exception,当我的应用程序崩溃时,我试图记录一个异常。尽管偶尔会捕捉到大多数异常,但我的应用程序还是会崩溃。我真的不知道如何将异常记录到文本文件中。无论我尝试什么似乎都不起作用。我不确定我做错了什么,如果有人能给我指出正确的方向,我将不胜感激 这就是我的代码目前的样子。我使用的是多线程环境 public MainWindow() { AppDomain currentDomain = AppDomain.CurrentDomain;
public MainWindow()
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
InitializeComponent();
}
static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception)args.ExceptionObject;
using (StreamWriter writer = File.AppendText("ExceptionsLog.txt"))
{
DateTime time = DateTime.Now;
writer.WriteLine("Time {0} Exception: {1} Runtime termination: {2}", time, e.Message, args.IsTerminating);
}
}
首先,确保刷新您的
StreamWriter
其次,AppDomain.CurrentDomain.UnhandledException
可能没有报告其他异常
- 如果您正在使用任务,它们可能会引发
事件TaskScheduler.UnobservedTaskException
- 如果您正在使用WPF,您可能还希望处理允许防止进程崩溃的
事件Application.Current.dispatchernhandledexception
- 如果您使用多个应用程序域,则当前域不会处理其中的异常