gpt4 book ai didi

c# - 捕获完全意外的错误

转载 作者:行者123 更新时间:2023-12-03 07:40:00 25 4
gpt4 key购买 nike

我有一个 ErrorRecorder 应用程序,它会打印错误报告并询问用户是否要将该报告发送给我。

然后,我有了主应用程序。如果发生错误,它将错误报告写入文件并要求 ErrorRecorder 打开该文件以向用户显示错误报告。

因此,我使用 Try/Catch 捕获了大部分错误。

但是,如果发生完全意外的错误并关闭我的程序怎么办。

是否有类似 Global/Override 方法或类似的东西,告诉程序“如果发生意外错误,在关闭之前,调用“ErrorRecorderView()”方法”

最佳答案

我认为这就是您所追求的 - 您可以在应用程序域级别处理异常 - 即在整个程序中。
http://msdn.microsoft.com/en-GB/library/system.appdomain.unhandledexception.aspx

using System;
using System.Security.Permissions;

public class Test
{

[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.ControlAppDomain)]
public static void Example()
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);

try
{
throw new Exception("1");
}
catch (Exception e)
{
Console.WriteLine("Catch clause caught : " + e.Message);
}

throw new Exception("2");

// Output:
// Catch clause caught : 1
// MyHandler caught : 2
}

static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception)args.ExceptionObject;
Console.WriteLine("MyHandler caught : " + e.Message);
}

public static void Main()
{
Example();
}

关于c# - 捕获完全意外的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com