欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

.net錯誤處理機(jī)制的用法-創(chuàng)新互聯(lián)

小編給大家分享一下.net錯誤處理機(jī)制的用法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

站在用戶的角度思考問題,與客戶深入溝通,找到延安網(wǎng)站設(shè)計(jì)與延安網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋延安地區(qū)。

 .NET提供了四種錯誤處理機(jī)制,它們有一定的優(yōu)先級順序:Page_Error事件>ErrorPage屬性>Application_Error事件> <customErrors>配置項(xiàng)。

1.Page_Error事件

Page_Error 事件提供一種捕獲在頁級別出現(xiàn)的錯誤的方法。您可以只是顯示錯誤信息(正如下面的示例代碼所示),也可以記錄事件或執(zhí)行某個其他操作。

private void Page_Load(object sender, System.EventArgs e)
   { // Put user code to initialize the page here
        throw new Exception("Page Error!");
   }
protected void Page_Error(object sender, EventArgs e) 
   {
      Exception objErr = Server.GetLastError().GetBaseException();
    Response.Write("Error:" + objErr.Message);
       Server.ClearError(); //同樣要注意這句代碼的使用
  }

備注:此示例在瀏覽器中顯示詳細(xì)的錯誤信息,提供此示例只是為了進(jìn)行說明。向應(yīng)用程序的最終用戶顯示詳細(xì)信息一定要小心。更適當(dāng)?shù)淖龇ㄊ窍蛴脩麸@示一條消息,告知已發(fā)生錯誤,然后將具體的錯誤詳細(xì)信息記錄在日志中。

2.ErrorPage屬性

你幾乎可以在頁面任何時候設(shè)置ErrorPage屬性,從而確定頁面發(fā)生錯誤的時候會重定向至哪個頁面。要讓ErrorPage屬性能夠發(fā)揮作用,<customErrors>配置項(xiàng)中的mode屬性必須設(shè)為"On"。

this.ErrorPage = "~/ErrorHandling/PageError.html";

如果Page_Error和ErrorPage都存在,當(dāng)拋出Exception時,頁面執(zhí)行順序是怎樣的呢?頁面會先執(zhí)行Page_Error事件處理函數(shù),如果Page_Error()事件中調(diào)用函數(shù)Server.ClearError()清除異常信息,則不會跳轉(zhuǎn)到ErrorPage屬性指定頁面;如果沒有調(diào)用Server.ClearError(),Exception信息會繼續(xù)向上拋,頁面會跳轉(zhuǎn)到ErrorPage指定頁面。這也就證明了優(yōu)先級順序:Page_Error事件>ErrorPage屬性。

3.Application_Error事件

與Page_Error 事件相類似,您可使用Application_Error事件捕獲發(fā)生在應(yīng)用程序中的錯誤。由于事件發(fā)生在整個應(yīng)用程序范圍內(nèi),因此您可記錄應(yīng)用程序的錯誤信息或處理其他可能發(fā)生的應(yīng)用程序級別的錯誤。在Global.asax文件中添加如下代碼就OK了。

protected void Application_Error(object sender, EventArgs e)
      {
         Exception ex = Server.GetLastError().GetBaseException();
         //實(shí)際應(yīng)用中這里可以將Exception信息記Log或是保存到數(shù)據(jù)庫中
         //還可以將錯誤發(fā)郵件給網(wǎng)站維護(hù)人員
          Response.Write("Error:" + ex.Message);
         //清除Exception,避免繼續(xù)傳遞給上一級處理
         //這里上級就是<CustomerErrors>配置節(jié)了
          Server.ClearError(); 
     }

4.<customErrors>配置項(xiàng)

配置文件web.config中的<customErrors> 配置節(jié),可將重定向頁指定為默認(rèn)的錯誤頁defaultRedirect或者根據(jù)引發(fā)的 HTTP 錯誤代碼指定特定頁。如果發(fā)生在應(yīng)用程序以前的任一級別都未捕獲到的錯誤,則顯示這個自定義頁。

<customErrors mode="On" defaultRedirect="~/ErrorHandling/ApplicationError.html"> <error statusCode="404" redirect="~/ErrorHandling/404.html" /> </customErrors>

同樣,如果Application_Error和<customerErrors>同時存在,也存在執(zhí)行順序的問題。因?yàn)閮?yōu)先級Application_Error事件> <customErrors>配置項(xiàng),所以發(fā)生應(yīng)用程序級錯誤時,優(yōu)先執(zhí)行Application_Error事件中的代碼,如果Application_Error事件中調(diào)用了Server.ClearError()函數(shù),<customerErrors>配置節(jié)中的defaultRedirect不起作用,因?yàn)镋xception已經(jīng)被清除;如果Application_Error事件中沒用調(diào)用了Server.ClearError()函數(shù),錯誤頁會重新定位到defaultRedict指定的URL頁面,為用戶顯示友好出錯信息。

通過對.NET提供的以上四種錯誤處理機(jī)制的分析,我們可以把它們從不同的角度分類,便于我們理解和使用。

1.從功能上分類:用于異常處理(Handling exceptions)是Page_Error事件和Application_Error事件;用戶錯誤頁面重定向(Redirecting the user to an error page)的是 ErrorPage屬性 和 <customErrors>配置項(xiàng)。

2.從錯誤處理的范圍分類:用于頁面級(Page level)錯誤處理的是Page_Error事件 和 ErrorPage屬性;用于應(yīng)用程序級(Application level)錯誤處理的是Application_Error事件 和 <customErrors>配置項(xiàng)。

以上是.net錯誤處理機(jī)制的用法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前題目:.net錯誤處理機(jī)制的用法-創(chuàng)新互聯(lián)
標(biāo)題來源:http://chinadenli.net/article10/ghsgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站收錄、網(wǎng)站制作、網(wǎng)站設(shè)計(jì)小程序開發(fā)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)