创建一条错误消息,报告来自C#应用程序内部任何位置的崩溃
我有一个用C语言编写的可执行文件,它在一台计算机上运行良好,但在另一台计算机上崩溃时没有提供错误 是否有一个类可以添加到我的代码中,该类将转储与崩溃相关的所有信息,无论代码中的错误发生在何处创建一条错误消息,报告来自C#应用程序内部任何位置的崩溃,c#,error-handling,C#,Error Handling,我有一个用C语言编写的可执行文件,它在一台计算机上运行良好,但在另一台计算机上崩溃时没有提供错误 是否有一个类可以添加到我的代码中,该类将转储与崩溃相关的所有信息,无论代码中的错误发生在何处 我看过这篇文章,但我希望创建一个“一网打尽”的错误处理类,该类将存在于我的代码中。尝试AppDomain异常处理程序: 代码示例: class Program { static void Main(string[] args) { AppDo
我看过这篇文章,但我希望创建一个“一网打尽”的错误处理类,该类将存在于我的代码中。尝试AppDomain异常处理程序: 代码示例:
class Program
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
var thr = new Thread(() =>
{
Thread.Sleep(1000);
throw new Exception("Custom exception from thread");
});
thr.Start();
thr.Join();
Console.WriteLine("Done");
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//Log information from e.ExceptionObject here
}
}
在本例中,注册一个自定义全局异常处理程序,然后启动一个线程,该线程在1秒后抛出异常。然后调用全局异常处理程序,并抛出自定义异常。在“其他”pc上调试项目并检查错误发生的位置。您尚未说明这是什么类型的应用程序。ASP.NET应用程序中的全局异常处理通常不同于WinForms应用程序,例如。道歉。这是一个XNA Framework 4.0项目,其中还包含用于加载和保存文件的WinForms代码。我想知道这是否适用于承载多个文件的应用程序AppDomains@Leo不,似乎没有。但是,如果您要创建更多的应用程序域,那么为每个应用程序域注册相同的未处理异常处理程序通常很简单。