У меня есть простое приложение WinForms, которое используется для ввода тестовых случаев.С тех пор, как я обновил это приложение до .NET 4.0 и добавил новую вкладку в элемент управления вкладки для проверки XML по схеме XSD, приложение случайно зависало.Мне не удалось воспроизвести исключение.
Ошибка, которую получает мой сотрудник по обеспечению качества, - это общее сообщение 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();
}
}
К сожалению, это не помогло, и что бы ни выглядело, ошибка продолжает поступать так, что генерирует необработанную ошибку, которая всплывает в ОС.* Кто-нибудь может дать мне какие-нибудь другие идеи насчет ловли этого исключения?