Перехват необработанных исключений в приложении

      Этот пример показывает, как перехватывать все исключения, которые не были пойманы в try-catch(в приложении Windows Forms).
UnhandledException событие обрабатывает неперехваченное исключения из основного потока пользовательского интерфейса. ThreadException обрабатывает неперехваченное исключения из не-UI потоков.


static void Main()
{
   Application.EnableVisualStyles();
   Application.SetCompatibleTextRenderingDefault(false);

   Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
   AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

   Application.Run(new Form1());
}

static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
   MessageBox.Show(e.Exception.Message, "Unhandled Thread Exception");
   // here you can log the exception ...
}

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
   MessageBox.Show((e.ExceptionObject as Exception).Message, "Unhandled UI Exception");
   // here you can log the exception ...
}


Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!