之前對於 WinForm 的 Exception 處理方法,一直搞不懂。
原來,微軟有 sample
public static void Main(string[] args) { // Add the event handler for handling UI thread exceptions to the event. Application.ThreadException += new ThreadExceptionEventHandler(ErrorHandlerForm.Form1_UIThreadException); // Set the unhandled exception mode to force all Windows Forms errors to go through // our handler. Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); // Add the event handler for handling non-UI thread exceptions to the event. AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); // Runs the application. Application.Run(new ErrorHandlerForm()); }
也就是說,UI Thread 上發生的錯誤,會產生 Application.ThreadException 事件
而非 UI Thread 上發生的錯誤,則會產生 AppDomain.CurrentDomain.UnhandledException 事件
沒有留言:
張貼留言