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

    回到目录

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

    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了,呵呵。


    回到目录
  • 相关阅读:
    【转】Android——设置颜色的三种方法
    Eclipse Android安装APP时覆盖安装问题
    自定义数组,实现输出改数组的长度、最大值和最小值
    用程序实现对数组a[45,96,78,6,18,66,50]中的元素进行排序
    PHP面试题2
    PHP面试题
    gulp
    移动端base.css
    笔记
    mouseover和mouseout事件在鼠标经过子元素时也会触发
  • 原文地址:https://www.cnblogs.com/lori/p/2550255.html
Copyright © 2011-2022 走看看