ASP.NET错误处理的三种方式
2016-06-14 15:28
741 查看
通过从网上查找资料,总结下来,ASP.NET提供的错误处理的方式有三种:1、OnError事件;2、Application_Error事件;3、web.config配置。感兴趣的童鞋可以试试看~
前两个比较类似,可以捕获异常,并进行错误页跳转等,只是放置位置不同,OnError事件写在web页面中,Application_Error事件写在Global文件中,很明显,控制范围也不同。下面给出一个错误处理的例子供参考(来源:http://www.jb51.net/article/40588.htm)
第三种方式,web.config中设置customErrors节点,在出错时会跳转到默认页,三种mode的差别见另一篇文章web.config中的<customErrors>节点
前两个比较类似,可以捕获异常,并进行错误页跳转等,只是放置位置不同,OnError事件写在web页面中,Application_Error事件写在Global文件中,很明显,控制范围也不同。下面给出一个错误处理的例子供参考(来源:http://www.jb51.net/article/40588.htm)
void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 Exception ex = Server.GetLastError().GetBaseException(); StringBuilder str = new StringBuilder(); str.Append("\r\n" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss")); str.Append("\r\n.客户信息:"); string ip = ""; if (Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") != null) { ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim(); } else { ip = Request.ServerVariables.Get("Remote_Addr").ToString().Trim(); } str.Append("\r\n\tIp:" + ip); str.Append("\r\n\t浏览器:" + Request.Browser.Browser.ToString()); str.Append("\r\n\t浏览器版本:" + Request.Browser.MajorVersion.ToString()); str.Append("\r\n\t操作系统:" + Request.Browser.Platform.ToString()); str.Append("\r\n.错误信息:"); str.Append("\r\n\t页面:" + Request.Url.ToString()); str.Append("\r\n\t错误信息:" + ex.Message); str.Append("\r\n\t错误源:" + ex.Source); str.Append("\r\n\t异常方法:" + ex.TargetSite); str.Append("\r\n\t堆栈信息:" + ex.StackTrace); str.Append("\r\n--------------------------------------------------------------------------------------------------"); //创建路径 string upLoadPath = Server.MapPath("~/log/");//"E:\\log\\"; if (!Directory.Exists(upLoadPath)) { Directory.CreateDirectory(upLoadPath); } //创建文件 写入错误 File.AppendAllText(upLoadPath + DateTime.Now.ToString("yyyy.MM.dd") + ".log", str.ToString(), System.Text.Encoding.UTF8); //处理完及时清理异常 Server.ClearError(); //跳转至出错页面 Response.Redirect("Error.html"); }
第三种方式,web.config中设置customErrors节点,在出错时会跳转到默认页,三种mode的差别见另一篇文章web.config中的<customErrors>节点
<system.web>
<!--<customErrors mode="RemoteOnly" defaultRedirect="~/error.html"/>--> <customErrors mode="On" defaultRedirect="~/error.html"/> <!--<customErrors mode="Off" defaultRedirect="~/error.html"/>--> </system.web>
相关文章推荐
- [转]Asp.net MVC 利用PartialView 构造自定义菜单
- asp.net Framework 与 asp.net core 知识
- 在raspberry运行xibo
- asp.net web forms和asp.net mvc比较
- asp.net webpage
- BrnShop开源网上商城第二讲:ASP.NET MVC框架
- 比较分析 Spring AOP 和 AspectJ 之间的差别
- [转]ASP.NET 成员资格 Part.1(API)
- Spring AOP @AspectJ进阶
- 注意!ASP.NET MVC 3 的一个 OutputCache 问题
- ASP.net 中 OutputCache 指令各个参数的作用
- 理解SVG坐标系和变换:视窗,viewBox和preserveAspectRatio
- asp.net MVC 应用程序的生命周期
- ASP.NET生命周期详解 [转]
- asp.net core
- asp.net web开发所用到的技术
- IIS7.5 配置自定义后缀的ASP文件 无法执行 总是提示下载的解决方法
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引
- asp.net mvc Code First模式下迁移更新数据库
- Android基于AOP的非侵入式监控之——AspectJ实战