程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 項目開發經驗-ASP.NET項目開發中的異常處理

項目開發經驗-ASP.NET項目開發中的異常處理

編輯:關於ASP.NET

前言:異常的處理在項目開發中是很有必要的,異常的處理不僅僅只是try..catch..finally就完事了的。異常處理絕對可以稱開發中的重要組成部分。必須正確的面對異常,因為即使是最能干的開發人員,也要面對這個問題 ....

我們不知道客戶是怎麼樣使用我們開發的軟件的,所以我們必須處理這樣的情況:如果系統不按照我們的設計時所想的運行,我們改怎麼辦?

下面我們就來具體的介紹在ASP.NET項目開發中的異常的處理方式,希望看完後,大家可以回答上面的問題。

本篇的話題如下:

應用程序級別異常處理的錯誤處理

頁面級別異常處理

方法級別異常處理

web.config文件異常處理配置

健康監視(Health Monitoring)

Enterprise Application Blocks異常處理模塊

一.在應用程序級別的異常處理:

相信大家對Application對象不陌生,而且在項目中添加過Global.asax文件。確實,ASP.NET在應用程序級別處理異常的代碼都是放在Global.asax的Application_Error事件處理下的:

void Application_Error(object sender, EventArgs e)
  {
  // Code that runs when an unhandled error occurs
  }

我們可以在上面的事件處理的方法中捕獲所有的異常,而且還可以把異常記錄到日志文件,並且同時發送Email告訴開發人員出現了什麼問題,如下

Exception error = Server.GetLastError().GetBaseException();
//在事件日志中記錄異常
if (!EventLog.SourceExists("ApplicationException"))
{
  EventLog.CreateEventSource("ApplicationException", "Application");
}

EventLog eventLog = new EventLog();
eventLog.Log = "Application";
eventLog.Source = "ApplicationException";
eventLog.WriteEntry(error.ToString(), EventLogEntryType.Error);

//發送Email給開發人員
MailMessage email = new MailMessage("[email protected]",
"[email protected]");
email.Body = error.ToString();
email.Subject = "An error occurred in the  Application";
SmtpClient smtpClient = new SmtpClient("127.0.0.1", 25);
smtpClient.Send(email);
Response.Redirect("ErrorPage.aspx");

當然,上面的代碼要正確的運行,我們海必須在Global.asax中加入相應的命名空間,而且在發送郵件的時候,上面的"127.0.0.1"要換為我們自己的郵件服務器的地址:

<%@ Import Namespace="System.Diagnostics" %>
  <%@ Import Namespace="System.Net.Mail" %>

還有一點要注意的就是,ASP.NET運行時是以ASPNET賬戶運行的,這個賬戶的權限是有限的,如果我們想要使得上面的代碼可以運行,那麼就必須要給ASPNET賬戶訪問注冊表的權限。如果你不給權限,那麼上面的代碼就報錯。

我們賦予ASPNET賬戶訪問在"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog"節點以及字節點的權限。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved