ASP.NET 异常处理

Asp.net 开发过程中,我们会遇到很多 Exception ,不处理这些 Exception 的话会出现很难看的页面。
还有一些我们未预料到的 Exception ,当发生 Exception 时,我们也必须进行记录具体位置,以便我们修正错误。
asp.net
异常处理的位置大概有以下 3 个地方
1.
程序的代码段中,这是最直接处理异常的地方。如下
try
{
    n=Convert.ToInt32(info);
}
catch(Exception)
{
}
只是最基本处理异常的地方。

2. ASP.NET 的中的 Application_Error .Application_Error 事件。对于应用程序中引发的任何未处理异常都会引发此事件。一般我们处理如下
protected void Application_Error(Object sender, EventArgs e)
  {
    Exception exp=Server.GetLastError();
    string strE="
内部错误 :"+ exp.InnerException.ToString()+"/r/n 堆栈: "+ exp.StackTrace+"/r "+"Message:"+exp.Message+"/r 来源 :"+exp.Source;
   
   // 在事件日志中记录异常信息
   Log(strE);
   Server.ClearError();
   Server.Transfer("Error.aspx",false);
  }
这样我们就可以处理 Server 端出现的错误。我们记录出错的源头。

3. 也可以在页级别或者应用程序级别处理代码错误。 Page 基类公开了一个 Page_Error 方法,此方法在页中可以被重写。每当运行时引发未捕获的异常时都调用此方法。
void Page_Error(Object source, EventArgs e) {
    String message = "<font face=verdana color=red>"
        + "<h4>" + Request.Url.ToString() + "</h4>"
        + "<pre><font color='red'>"
        + Server.GetLastError().ToString() + "</pre>"
        + "</font>";

    Response.Write(message);
}

 

下面我讲述一下怎么在 ASP.NET 程序里面统一的处理异常,我们以最常见的 Session 过期为例

我们先写一个 Session 过期的异常
public class YSessionException:Exception
{
}

我们再定义一个属性
public int SessionValue
{
     get{ if(Session["SessionValue"]==null)
            {
                throw new YSessionException("");
             }
          }
}

下面我们在 Page_Error 或者 Application_Error 中处理这个异常
  {
   Exception exp=Server.GetLastError();
                        if(exp is YSessionException)
                        {
                               ..................
                        }
                        Server.ClearError();
   Server.Transfer("Error.aspx",false);
  }

这样就可以为我们程序提供很好的 Exception 处理界面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值