C# Application_Error事件

來源:互聯網
上載者:User

C#語言還是比較常見的東西,這裡我們主要介紹C# Application_Error事件,包括介紹Page_Error 事件等方面。

與 Page_Error 事件相類似,您可使用 C# Application_Error事件捕獲發生在應用程式中的錯誤。由於事件發生在整個應用程式範圍內,因此您可記錄應用程式的錯誤資訊或處理其他可能發生的應用程式層級的錯誤。

下面的樣本基於前面的 Page_Error 事件程式碼範例,如果 Page_Load 事件中的錯誤未在 Page_Error 事件中捕獲,將引發異常。C# Application_Error事件在應用程式的 Global.asax 檔案中進行指定。為簡單起見,本節中的步驟建立一個要在其中引發異常的新頁,捕獲 Global.asax 檔案的 C# Application_Error事件中的錯誤,並將該錯誤寫入事件記錄中。

下面的步驟示範如何使用 C# Application_Error事件:

將名為 AppEvent.aspx 的新檔案添加到項目中,將以下代碼添加到 AppEvent.aspx 中,從檔案菜單中,單擊儲存 AppEvent.aspx。將 Application_Error 事件添加到 Global.asax 檔案中以捕獲在 AppEvent.aspx 頁的 Page_Load 事件中引發的錯誤。注意,您必須為 System.Diagnostics 名稱空間將另一條 using 語句添加到 Global.asax,才能使用事件記錄。

將以下代碼添加到 Global.asax 檔案中: 

 
  1. using System.Diagnostics;  
  2.  
  3. protected void Application_Error(object sender, EventArgs e)  
  4. {  
  5. Exception objErr = Server.GetLastError().GetBaseException();  
  6. string err ="Error Caught in Application_Error event\n" +  
  7. "Error in:" + Request.Url.ToString() +  
  8. "\nError Message:"+ objErr.Message.ToString() +  
  9. "\nStack Trace:"+ objErr.StackTrace.ToString();  
  10. EventLog.WriteEntry("Sample_WebApp",err,EventLogEntryType.Error);  
  11. Server.ClearError();  
  12. //additional actions...  
  13. }  

儲存 Global.asax 檔案。在 Visual Studio .NET 中,在產生菜單上,單擊產生。按右鍵該頁,然後單擊在瀏覽器中查看。在這種情況下該頁將為空白,但是您應該注意到在事件記錄中已添加了一個新項。本樣本在應用程式記錄檔中產生一個項,可從事件檢視器訪問應用程式記錄檔。在記錄錯誤之後,您可能希望將使用者重新導向到另一個更方便使用的錯誤頁或者根據需要執行一些其他動作。

如果您不調用 Server.ClearError 或者捕獲 Page_Error 或 C# Application_Error事件中的錯誤,則將根據 Web.config 檔案的 部分中的設定處理錯誤。在 部分,可將重新導向頁指定為預設的錯誤頁 (defaultredirect) 或者根據引發的 HTTP 錯誤碼指定特定頁。您可使用此方法自訂使用者收到的錯誤資訊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.