一、內存不足
內存是最常見的導致程序崩毀的原因,常用解決方式有如下幾種。
- 算法中聲明的占內存較大的全局變量或類中聲明的私有變量在循環或運行結束后需進行釋放,手動設置Dispose(),然后GC.Collect()。
- 對一些重復調用的類避免多次實例化。
- 對于高并發程序,需要結合線程處理方法進行解決。
二、未知原因崩潰
對于此類情況,可以添加未處理異常的事件。
static void Main(string[] args){AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;}private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e){Console.WriteLine("有未經處理的異常,程序即將退出!");Environment.Exit(-1);}
三、抓取異常方法
- 使用下面語句,可以抓取未捕獲的異常。Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
- 對于UI線程異常問題,則可以使用下面語句
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); - 對于其他異常問題,則見2.