ぷ行走de猫げ

在快乐中成长,在快乐中学习!

捕捉所有Page內的異常

________________________PageBase.cs___________________________________
//如果發生不預期的異常就跳轉到錯誤頁面
//把:Exception.Message顯示到錯誤頁面上
//這種常規的錯誤顯示機制可以寫到基類中,繼承該類的頁面
//再不用寫處理常規異常的try,catch快

public class PageBase:Page
{
 protected override void OnError(EventArgs e)//捕捉所有Page對象生命周期內的異常
        {
            base.OnError(e);
            Exception ex = Server.GetLastError();
            Response.Clear();
            //偽代碼:跳到錯誤處理頁面,傳參數 ex
            //GotoErrPage(ex);
        }
}
________________________SomePage.cs____________________________________
public class SomePage:PageBase//繼承
{
 protected void Page_Load(object sender, System.EventArgs e)
 {
  //如果發生異常就把跳轉到錯誤頁面,
  //產生一個異常,除數為0

  int x=0;
  Response.Write(1/x);
  //不用寫任何catch,該異常會在其父類的OnError中自動處理,
  //減少重復的代碼
  //由Page生命周期中的錯誤再不會導致伺服器錯誤的頁面
 }
}
posted @ 2009-01-05 09:33  李天翔  阅读(199)  评论(1编辑  收藏  举报