是否有任何理由更喜歡使用其中一種方法在Windows窗體應用程序中實現全局異常處理程序的方法之一?處理Application.ThreadException和將Application.Run包裝在Try/Catch中的區別
第一種方法
static void Main(string[] args)
{
try
{
System.Windows.Forms.Application.Run(mainform);
}
catch (Exception ex)
{
// Log error and display error message
}
}
第二種方法
static void Main(string[] args)
{
System.Windows.Forms.Application.ThreadException +=
new ThreadExceptionEventHandler(Application_ThreadException);
System.Windows.Forms.Application.Run(mainform);
}
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
// Log error and display error message
}
是否處理ThreadException事件給你的東西,在try/catch語句不?
第一種方法甚至不能在發佈模式下工作,即當你運行你的exe時,這將是一個未處理的異常,你不會到達catch塊;只在使用visual studio時才起作用。試試吧,在你的mainform中放一個按鈕並在那裏拋出異常。 – joedotnot