我有一个简单的 WinForms 应用程序,用于输入测试用例。自从我将此应用程序升级到 .NET 4.0 并在选项卡页控件中添加了一个新选项卡页以针对 XSD 架构验证 XML 以来,应用程序一直随机崩溃。我一直无法重现异常。
我的 QA 人员收到的错误是通用的 Windows 消息:
TestCaseViewer 遇到问题需要关闭。对此造成的不便,我们表示歉意。
为了尝试解决真正的错误,我在程序的 Main 方法的开头添加了以下代码:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += Application_ThreadException;
事件处理程序如下所示:
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
try
{
MessageBox.Show(e.Exception.ToString(), @"Thread Exception",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
Application.Exit();
}
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
try
{
var ex = (Exception)e.ExceptionObject;
MessageBox.Show(ex.ToString(), @"Unhandled Exception",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
Application.Exit();
}
}
不幸的是,这并没有帮助,无论是什么错误都会继续这样做,从而产生未处理的错误,该错误正在冒泡到操作系统。
谁能给我有关捕获此异常的任何其他想法?