我试图捕获在C#Windows窗体应用程序中的所有无关例外。我已将以下代码添加到Program.cs
文件中,但未捕获到异常,我收到异常,例如NullReferenceException
。 我在做什么错?无法捕获在Winforms中的未处理的异常
static void Main()
{
System.Windows.Forms.Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
System.Windows.Forms.Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(OnGuiUnhandedException);
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
var form = new MainForm();
form.ShowDialog();
}
private static void HandleUnhandledException(Object o)
{
// TODO: Log it!
Exception e = o as Exception;
if (e != null)
{
}
}
private static void OnUnhandledException(Object sender, UnhandledExceptionEventArgs e)
{
HandleUnhandledException(e.ExceptionObject);
}
private static void OnGuiUnhandedException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
HandleUnhandledException(e.Exception);
}
编辑:我能捕捉到的异常程序的Visual Studio之外的外部运行时,但是从Visual Studio调试运行时,我不能赶上Exception.I知道调试是错误removal.Should我运行程序在构建模式下捕获异常?
邮政编码,实际上重现了问题。 –