快网首页 | 虚拟主机 | 域名注册 | 特惠套餐 | 企业邮局 | SQL空间 | IDC业务 | 全球通邮
ASP.NET全局异常处理浅析,ASP.NET全局异常处理
客服中心新闻动态常见问题常用资料知识学堂走近客服在线提问网站导航
ASP.NET全局异常处理浅析,ASP.NET全局异常处理
 网页设计 | 操作系统 | 程序开发 | Dos 命令 | 平面设计 | 办公软件

 您的位置:快网首页 >> 客服中心 >> 知识学堂 >> 程序开发 >> 文章正文

ASP.NET全局异常处理浅析
供稿:润之康   时间:2009-2-14 14:53:56

  在我们写程序时偶尔会由于疏忽导致有些异常没有进行处理。如果将异常详细信息提示给用户会带来不安全因素,如果不提示详细信息又会给用户报告异常带来麻烦。虽然可以通过配置customErrors mode来实现只有管理员可以查看错误,但发现问题的时间可能会比较长。通过全局异常处理就可以在异常发生时立即记录异常,或直接发送邮件向管理员报告,以在最快的速度发现并处理异常。

  要为ASP.NET应用程序添加全局异常处理主要是添加HttpApplication的Error事件的处理。这与在BeginRequest事件中进行URL重写方法类似。先建一个继承System.Web.IHttpModule的类。然后添加Init方法和ShowError方法。

namespace Snowdream
{
public class HttpModule : System.Web.IHttpModule
{
public void Init(System.Web.HttpApplication context)
{
context.Error += new EventHandler(ShowError);
}
private void ShowError(object sender, EventArgs e)
{
//在这里进行异常处理
}
}
}

   然后还需要配置web.config的httpModules使之生效。

  我现在比较喜欢的做法是将异常的详细信息记录在数据库中,然后返回一个编号,再将页面重定向到自己写的错误提示页,将这个编号提示给用户,用户如果要报告错误只需提供该错误编号,管理员就能在后台中找到错误的详细信息并进行修改。

  下面说2个我在做全局异常处理时碰到的问题及我的解决方案:

  第一个是获取异常hResult,由于是私有属性不能直接访问,解决方法是通过(int)System.Runtime.InteropServices.Marshal.GetHRForException(exception)来获取;

  第二个问题是记录了很多不是由于ASP.NET应用程序引发的错误,比如用户键入一个错误的URL,异常处理系统会记录一个“文件不存在。”的错误,而这些错误记录不仅不能真正反映出ASP.NET应用程序的异常反而会给管理员带来更多麻烦。我的解决方法是通过判断if(exception is System.Web.HttpException)来过滤这些HttpException。


快网保留以上说明的最终解释权
快网,域名注册,虚拟主机,ASP空间,企业邮局,SQL空间,主机租用,主机托管
   
热门搜索:FTP 域名 DNS 备案 空间 邮箱 SQL 主机 快网 中文域名 虚拟主机
快网,域名注册,虚拟主机,ASP空间,企业邮局,SQL空间,主机租用,主机托管
快网客服中心的相关信息:
v 如果更改 Sql Server 2008 表字段 不让更改怎么办? [2014-1-26 9:37:14]
v sql2005 远程连接问题解决方法 [2012-5-10 13:13:22]
v Mysql修改设置root密码的命令及方法 [2012-3-19 18:05:19]
v 主机不支持fsockopen函数的解决方法 [2011-5-16 16:19:15]
v 64位Windows 2008/7下配置IIS+PHP出现404.17错误的解决办法 [2011-2-3 16:18:48]
快网,域名注册,虚拟主机,ASP空间,企业邮局,SQL空间,主机租用,主机托管
快网,域名注册,虚拟主机,ASP空间,企业邮局,SQL空间,主机租用,主机托管
如果您在使用我们的产品中遇到问题,建议您首先在“常见问题”中查询解决方法;
如果没有找到该问题的解决方法,您可以在“问题搜索”中进行搜索;
如果搜索后没有找到满意答案,您可以“在线提问”,我们会尽快给您答复。
快网,域名注册,虚拟主机,ASP空间,企业邮局,SQL空间,主机租用,主机托管
域名注册查询中文域名转码
域名whois查询网站PR值查询
快网,域名注册,虚拟主机,ASP空间,企业邮局,SQL空间,主机租用,主机托管

:::::: | 收藏本站 | 关于我们 | 客服中心 | 付款方式 | 联系我们 | 网站律师 | 工作机会 | 网站地图 | 产品管理 | ::::::

Copyright (C) 2003-2008 天津追日科技发展有限公司  Cnkuai.cn  快网.cn  中国快网.cn