异常处理程序仅在从Visual Studio中运行时有效
本文关键字:运行时 有效 Studio Visual 异常处理程序 | 更新日期: 2023-09-27 18:26:32
我正在使用Visual Studio 2012、C#、.NET 4.5创建一个Windows Forms
应用程序;Windows 7。
我想用我自己的错误处理程序来处理任何未处理的异常。我写了一些代码,如下所示。我甚至尝试了两种不同的错误处理方法。
现在,当我在Visual Studio(2012)中运行此程序时,效果非常好!
但当我从资源管理器启动程序时,我的错误处理程序永远不会被调用;相反,总会弹出.NET Framework中的标准错误处理程序。
那么我做错了什么?
static void Main()
{
try
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(HandleUnhandledException);
Application.Run(new frmMainFrame());
}
catch (Exception ex)
{
// Here is my error handler ....
}
}
static void HandleUnhandledException(object sender, UnhandledExceptionEventArgs args)
{
Exception ex = (Exception) args.ExceptionObject;
// Here is my error handler ....
}
连接应用程序。线程异常。
或者将Application.SetUnhandledExceptionMode设置为UnhandledExceptionMode.ThrowException以启动您的appdomain处理程序。
首先,我将使用Debugger.Break()
方法将程序附加到有问题的代码部分。也许只是检查currentDomain是否为空。假设您没有引发强制CLI停止的异常。