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处理界面。

 

分类:  C# Asp.net

本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/archive/2010/03/30/1700243.html,如需转载请自行联系原作者
相关文章
|
存储 开发框架 安全
ASP.NET Core 中间件的使用(三):全局异常处理机制(Filter拦截器对比)
ASP.NET Core 中间件的使用(三):全局异常处理机制(Filter拦截器对比)
|
3月前
|
开发框架 .NET API
在 ASP.NET Core Web API 中使用异常筛选器捕获和统一处理异常
在 ASP.NET Core Web API 中使用异常筛选器捕获和统一处理异常
|
Java
已解决Java.net.MalformedURLException异常的有效方法java.net.MalformedURLException: no protocol异常处理
已解决Java.net.MalformedURLException异常的有效方法java.net.MalformedURLException: no protocol异常处理
622 0
|
XML 数据采集 开发框架
asp.net core添加全局异常处理及log4net、Nlog应用
文章来源于阿里云 MVP郭联钰。
547 0
|
.NET 中间件 开发框架
ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 异常和错误处理 上一章节中,我们学习了 ASP.
1307 0
|
监控 .NET Java
asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionless的学习做下笔记! Exceptionless是什么?能做什么呢? “Exceptionless”这个词的定义是:没有异常。
1903 0
|
Web App开发 前端开发 .NET
ASP.NET MVC-异常处理&自定义错误页
原文:ASP.NET MVC-异常处理&自定义错误页 一、应用场景  对于B/S应用程序,在部署到正式环境运行的过程中,很有可能出现一些在前期测试过程中没有发现的一些异常或者错误,或者说只有在特定条件满足时才会发生的一些异常,对于使用ASP.
1164 0
|
.NET 程序员 开发框架