onEnter抛出异常 - 未被主循环捕获

时间:2014-03-21 16:12:47

标签: c#

我有这段代码:

try 
{
    Application.Run(myForm);
} 
catch (Exception e) 
{
   // handle
}

在我的MyForm中,当我在按钮单击处理程序中抛出异常时,它会按预期捕获并由上面的代码处理。当我抛出表格的onEnter处理程序时,它没有被抓住。

1 个答案:

答案 0 :(得分:1)

使用AppDomain.CurrentDomain.UnhandledException

   public static void Main()
   {
      AppDomain currentDomain = AppDomain.CurrentDomain;
      currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);

     Application.Run(myForm);
   }

   static void MyHandler(object sender, UnhandledExceptionEventArgs args) 
   {
      Exception e = (Exception) args.ExceptionObject;
      Console.WriteLine("MyHandler caught : " + e.Message);
      Console.WriteLine("Runtime terminating: {0}", args.IsTerminating);
   }