在Main()方法中使用try{……}catch为什么捕捉不到异常?
在Main()方法中使用try{……}catch为什么捕捉不到异常?
在VS2005的开发环境中用 F5 启动调试可以捕捉到,可在bin\Debug\直接运行.exe文件就提示未处理的异常。
------解决方案--------------------
因为不是同一线程,所以捕获不到
你可以这样做,在Program类里:
       static void Main()
       {
           Application.ThreadException +=
                   new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
           AppDomain.CurrentDomain.UnhandledException +=
               new System.UnhandledExceptionEventHandler(AppDomain_UnHandledException);
           Application.EnableVisualStyles();
           Application.SetCompatibleTextRenderingDefault(false);
           Application.Run(new YourForm());
       }
       private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
       {
           HandleException(e.Exception);
       }
       private static void AppDomain_UnHandledException(object sender, System.UnhandledExceptionEventArgs e)
       {
           if (e.ExceptionObject is 
System.Exception)
           {
               HandleException((System.Exception)e.ExceptionObject);
           }
       }
       private static void HandleException(Exception ex)
       {
           MessageBox.Show(ex.Message);
       }