2011-11-07 50 views
4

當我的程序遇到致命錯誤並崩潰時,如何執行一些代碼?例如,出現了一些錯誤,彈出的框中顯示「TestApp.exe遇到錯誤,需要關閉」。然後我想寫一個帶有錯誤代碼的文件,並說出最後幾個輸入到程序中的東西的報告。我怎麼會在C#中做到這一點?處理C#中的致命異常?

回答

3

根據您正在編寫的應用程序的類型,有不同的方法。您可以查看following article以瞭解在WinForms應用程序中如何實現這一點。

+1

捕獲異常 - 不是特定類型的頂級異常處理程序(博客文章的頂部)是個好主意。事實上,這是你應該抓住Exception的極少數地方之一。 – ssamuel

0

通常,編寫ExceptionFatalException和另外兩種類型的處理程序是一個好主意,您應該在try.. catch子句中更具體。嘗試探索Application課程,尤其是其SetUnhandledExceptionMode。你可以找到一個很好的例子,如何使用它here

0

這取決於你在這裏問什麼。

您可以通過try/catch獲得定期例外。

但是,如果您運行的任何外部DLL可能會損壞狀態異常(CSE),您需要在您的app.config中啓用legacyCorruptedStateExceptionsPolicy(但不要忘記,Microsoft有理由將其作爲默認值移除它以前,你應該嘗試解決這種錯誤不僅趕上他們,忘記它們)

http://dotnetslackers.com/articles/net/All-about-Corrupted-State-Exceptions-in-NET4.aspx

0

對於錯誤記錄到文件中,你可以使用log4net

任何方式,它應該像:

try 
{ 
// Something potentially dangerous 
} 
catch (Exception Ex) 
{ 
    Logger.Append(Ex.Message); 
}