2310学习笔记(四)--出错处理

本文介绍了C#在Web应用程序中的异常处理技术。包括使用异常处理块在过程范围、出错事件在对象范围处理异常,查看.NET Framework提供的异常处理类型,定义新异常,还阐述了使用出错事件处理异常的步骤,以及应用程序级和页面级错误页面的设置方法。

异常处理技术

在web应用程序中可以使用两种不同的方法来处理异常:

  • 使用异常处理块在过程范围内处理异常。(vs.net文档中成为结构化异常处理)
  • 使用出错事件在对象范围内处理异常

查看.net framework提供的异常处理类型:

在Debug菜单中,选择Exceptions。在显示的对话框中列出了所有framework提供的异常

定义新异常:

  ApplicationException 类提供了与标准Exception类相同的功能。他提供了一种方式来区分framework中定义的异常和自己定义的异常

  1.throw new ApplicationException("User is already logged on");

  2.public class UserLoggedOnException : System.ApplicationException

    {

       public UserLoggedOnException() : this("The user is already logged on to the server",null)

       {

       }

 

      public UserLoggedOnException(string message) : this(string message) : this(message,null)

      {

      }

 

      public UserLoggedOnException(string message,Exception inner) : base(message,null)

      {

       }

    }

 

使用出错事件

使用server对象来获取异常相关信息

Server对象的异常处理事件
GetLastError()获取在服务器上发生的最后一个异常
ClearError()清楚在服务器上发生的最后一个异常

在出错事件中处理异常的步骤:

  1. 在Page_Error,Global_Error或Application_Error事件过程中,使用GetLastError方法获取发生的异常。
  2. 对该异常进行处理,例如向用户显示信息,采取步骤纠正问题,或写入到出错日志中
  3. 使用ClearError方法清楚异常
  4. 重新显示一个页面

e.g.

private void Page_Error(object sender,System.EventArgs e)

{

  Exception ex = Server.GetLastError();

  Session["Error"] = ex.Message;

  Server.ClearError();

  Response.Redirect("ErrorEvent.aspx");

}

 

 

使用错误页面

应用程序级的错误页面

  • 可以在IIS中设置
  • 还可以在web.config中配置出来

e.g.

<customErrors mode="On" defaultRedirect="ErrorDefault.aspx">

     <error statusCode="401" redirect="ErrorUnauthorized.aspx" />

     <error statusCode="404" redirect="ErrPageNotFound.aspx" />

     <error statusCode="500" redirect="ErrServer.htm" />

</customErrors>

 

页面级应用程序错误

e.g.

<%@ Page Language="c#" Codebehind="ErrorPage.aspx.cs" AutoEventWireup="flase" Inherites="csErrorPageSnippt.WebForm1" errorPage="ErrorDefault.aspx">

 

//ErrorDefault.aspx

private void Page_Load(object sender,System.EventArgs e)

{

  lb_Error.Text=Server.GetLastError().Message;

  Server.ClearError();

}


文章来源: http://spaces.msn.com/members/Grisson/Blog/cns!1pdzVqmOhs8O_w1Y7GbtnyFQ!212.entry
posted on 2005-08-12 10:53 海盗 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/Grisson/archive/2005/08/12/213199.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值