代碼閱讀總結之Fitch and Mather 7.0(asp.net發生異常或錯誤時錯誤提示頁面的處理方法)

來源:互聯網
上載者:User

 

當asp.net發生異常或錯誤時,我們是怎麼樣處理錯誤提示頁面?

我總結了下面幾種方式:

 

i:利用方法Response.Redirect()

看下面2段代碼:

 

1.

在頁面admin.aspx中發生異常時

try

{

       //程式邏輯

}

catch(OverflowException)

{

       //在選中的上下文中所進行的算術運算、類型轉換或轉換操作導致溢出時引發的異常

       //例如:小於int的MinValue或大於int的MaxValue,異常,轉到出錯誤頁

       Response.Redirect("ErrorPage.aspx",true);

}


 

2.

在開源項目ASP.NET StartKit TimeTracker中

在頁面UserList.aspx中發生邏輯錯誤

if (TTSecurity.IsInRole(TTUser.UserRoleAdministrator) == false)

{

       //訪問者的角色不是"Administrator"時,提示角色錯誤頁面

       Response.Redirect("AccessDenied.aspx?Index=-1", true);

}

 

ii.利用設定檔Web.config

我們先設定

 <customErrors

    mode="On"

    defaultRedirect="ErrorPage.aspx"

    />

讓我們先瞭解一下未處理的異常的處理過程:

當引發未處理的異常時發生時,先觸發頁面的Error 事件(從類TemplateControl繼承),再觸發Global中的事件Application_Error,最後系統自動轉向錯誤頁面ErrorPage.aspx

 

在Fitch and Mather 7.0項目中我們看到了一種增強型的處理方式

見TickerDetail.aspx.cs中代碼

其中有一段代碼如下:

 

if ( dataTable == null )

{

       //當表dataTable == null,拋出HTTP異常

       //利用使用 HTTP 錯誤碼和錯誤資訊構造 Exception

       throw new System.Web.HttpException( 404, String.Empty );

}

 

再看看設定檔Web.config中的設定

 <customErrors defaultRedirect="error.aspx" mode="On">

      <error statusCode="404" redirect="error404.aspx" />

    </customErrors>

 

所以此錯誤發生時,系統會顯示頁面error404.aspx。

 

System.Net.HttpStatusCode.NotFound等效於 HTTP 狀態 404。NotFound 指示請求的資源不在伺服器上。

HttpStatusCode 枚舉定義為 HTTP 定義的狀態碼的值,具體情況請查看msdn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.