捕捉所有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生命周期中的錯誤再不會導致伺服器錯誤的頁面
}
}
//如果發生不預期的異常就跳轉到錯誤頁面
//把: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生命周期中的錯誤再不會導致伺服器錯誤的頁面
}
}