ぷ行走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 @   李天翔  阅读(200)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏