2012-06-10 41 views
3

在.NET考試中,我遇到了這個問題。如何在asp.net應用程序中捕獲未處理的異常?

您可以使用以下哪種方法來捕獲應用程序中未處理的異常?

  • SERVER_ERROR
  • Page_Error事件
  • 的Application_Error
  • Response_Error
  • OnError事件

我知道它的Application_Error,但我想知道的是什麼是別人。通過一些谷歌搜索,我發現OnError可以用來捕捉任何錯誤。我仍然不確定。你能告訴還有什麼其他的方法來處理未處理的異常:

回答

8

找到你未知的錯誤的正確點是Application_Error

避免捕獲的OnError您的網頁上,並讓系統將其傳送到的Application_Error因爲你已經失去了頁面上的控制,所以其他什麼,如果不是轉移到一些錯誤頁面,您可以做什麼? - 如果您嘗試重新加載它,則問題可能會導致堆棧溢出的閉環。

從我的經驗來看,當我嘗試使用頁面OnError來處理錯誤時,我只有在必須釋放一些全局內存時才使用它,或者如果頁面上發生錯誤,則會使用它。

要給出一個總結,嘗試捕獲try/catch塊內的所有錯誤,並給用戶一個消息/或者只是照顧這個問題,但讓全局捕獲器記錄未知錯誤並修復它。未知的錯誤會讓你失去對程序的真正控制,而實際上你不知道該怎麼做,因爲你沒有預測到它 - 所以記錄下來,並在下次修復它。

更多細節錯誤: How do I make a "generic error" page in my ASP.NET application so that it handles errors triggered when serving that page itself?

相關問題