将不确定变为确实~请自己搞清楚异常页面的设置方法(网上那些资料说的基本都有问题!)

简介:

这篇文件需要搞清楚两个概念:

1 怎么去设置友好的异常页面

2 如何去收集页面产生的异常信息

我们在网站开发时,一般需要设置两个异常页面,如404页面(资源未找到),500页面(系统内部错误,可能由某语句导致的某种异常),而如何去开启这个异常功能网上说法不少,但感觉把问题搞复杂,以及自己不太确实的答案很多,现在我就具体说一下:

首先,两个问题是独立的,第一,友好的导演页面的设置,第二如何去收集产生异常的信息

第一 友好的导演页面的设置方法:

打开web.config文件,添加如下代码即可,其它文件不需要设置

1 <customErrors mode="On" defaultRedirect="Error">
2       <error statusCode="404" redirect="Error" />
3       <error statusCode="500" redirect="~/Error/HttpError" />
4 </customErrors>

这里需要说清楚的是:mode="On",表示开启下面的错误异常友好页面;mode="Off",关闭下面的异常友好页面,即显示出具体的操作异常(一般在网站开发阶段用),mode="RemoteOnly",在服务器上开始错误详细信息,而在客户端关闭这个详细信息(一般网站上线后选用)。

到目前为止,就第一个问题就OK了。

现在看第二个问题,如何去收集产生异常的信息

我们以MVC3为例来说一下,有两种设置方法,第一对于某个controller或action的设置,可以在它上面加一个[HandlerErrorr]的特性,第二是对全局的所以controller的设置,可以在global.ascx里添加如下代码:

1        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
2         {
3             filters.Add(new HandleErrorAttribute());
4         }
5 
6        protected void Application_Start()
7         {
8               RegisterGlobalFilters(GlobalFilters.Filters);
9         }

值得庆幸的是MVC3本身的global.ascx已经集成了这部分的代码,而如果希望输出或者记录这些异常信息,也可以显示,现在我们将异常信息输出到页面上,看一下吧。

 1 @model System.Web.Mvc.HandleErrorInfo
 2 @{
 3     ViewBag.Title = "错误";
 4 }
 5 <h2>
 6     一个一般性的错误发生了</h2>
 7 @if (Model != null)
 8 {
 9     <p>
10         错误 名称:@Model.Exception.GetType().Name<br />
11         错误发生目录: @Model.ControllerName
12         <br />
13         错误发生文件:@Model.ActionName</p>
14     <p>
15         错误详细:</p>
16     <p>@Model.Exception.Message</p>
17 }

怎么样,够简单吧,聪明的你肯定想到了什么,对,如果您想记录这些信息,直接再写一个filter去到global.ascx里注册一下就OK了,呵呵。

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:将不确定变为确实~请自己搞清楚异常页面的设置方法(网上那些资料说的基本都有问题!),如需转载请自行联系原博主。

目录
相关文章
|
数据采集 机器学习/深度学习 数据挖掘
处理异常值:详细教程与实例分析
处理异常值:详细教程与实例分析
891 0
文本,学习方法,必须做,快的学习方法,统计汇总写法,比如你要构思一个数学库,需要写一个汇总,主动获取标题统计,主动生成文章跳转链接,然后将它打入文章资料当中:
文本,学习方法,必须做,快的学习方法,统计汇总写法,比如你要构思一个数学库,需要写一个汇总,主动获取标题统计,主动生成文章跳转链接,然后将它打入文章资料当中:
|
4月前
|
JSON 前端开发 Java
前后端数据交互-----表单数据获取不到,出错的原因,在编写接口时,没有考虑数据如何返回,解决问题的思路,找到自己出错的地方,围绕着出错的地方进行考虑(很重要),找对解决问题的视频,理清返回数据的思路
前后端数据交互-----表单数据获取不到,出错的原因,在编写接口时,没有考虑数据如何返回,解决问题的思路,找到自己出错的地方,围绕着出错的地方进行考虑(很重要),找对解决问题的视频,理清返回数据的思路
|
6月前
|
测试技术 iOS开发
蓝条下压和消失导致页面错乱问题解决方案
蓝条下压和消失导致页面错乱问题解决方案
43 0
|
6月前
|
文字识别 小程序 开发工具
mPaaS小程序问题之调用选图片的时候报错如何解决
mPaaS小程序是阿里巴巴移动平台服务(mPaaS)推出的一种轻量级应用解决方案,旨在帮助开发者快速构建跨平台的小程序应用;本合集将聚焦mPaaS小程序的开发流程、技术架构和最佳实践,以及如何解决开发中遇到的问题,从而助力开发者高效打造和维护小程序应用。
|
设计模式 消息中间件 JavaScript
干掉 “重复代码”,这三种方式绝了!
干掉 “重复代码”,这三种方式绝了!
36956 2
干掉 “重复代码”,这三种方式绝了!
|
消息中间件 JavaScript 小程序
接了个变态需求:给定一个接口,要用户自定义动态实现并上传热部署,怎么搞?
接了个变态需求:给定一个接口,要用户自定义动态实现并上传热部署,怎么搞?
|
资源调度 分布式计算 数据可视化
一看就懂!任务提交的资源判断在Taier中的实践
根据环境资源的剩余情况来动态调整提交任务的速率是Taier必不可少的一项功能,那么Taier究竟是怎么来判断资源的呢?本文就为大家详细聊聊任务提交的资源判断在Taier中的实践。对该话题感兴趣的朋友千万别错过~
146 0
一看就懂!任务提交的资源判断在Taier中的实践
|
Web App开发 Windows
当UI走查说页面色值错误时,先别急着检查代码
颜色一直是UI设计师们非常敏感的问题,为何屏幕会出现色差?工作中如何避免?
|
测试技术
软件测试面试题:一个元素明明定位到了,点击无效(也没报错),如果解决?
软件测试面试题:一个元素明明定位到了,点击无效(也没报错),如果解决?
492 0