ASP.NET MVC --- 网站错误处理

关于错误处理

try...catch语句,有一定局限性

  1. 一般适合语句的错误处理

  2. 不适合页面不存在等问题的处理

错误处理配置

  1. Web.config错误处理典型配置

    在system.web节点中添加配置

        
          
        

    defaultRedirect:发生错误时,浏览器重定向到的URL

    mode:On表示启动自定义错误,Off表示禁用自定义错误,RemoteOnly向远程客户端显示自定义错误,并且向本地主机显示ASP.NET错误

    statusCode:Http中特定的错误状态码

    redirect:发生该错误状态码时重定向的页面

  2. 使用HandleError处理错误

    Web.config配置的局限性

    1. 针对整个网站点的错误,配置错误显示页面,但是这个信息显示一般比较模糊

    2. 如果针对某种类型的控制器,甚至动作方法,显示更具体的信息,使用Web.config方式不合适

    3. 使用try catch也不合适(业务代码和错误代码混编)

    HandleError特性:针对动作方法更方便的错误显示方式

            [HttpPost]
            [HandleError( ExceptionType =typeof(System.Exception),View ="Error")]
            public ActionResult GetUserInfor(int Id)
            {
                UserServer server = new UserServer();
                UserInfor user = server.GetUserDetail(Id);
                ViewBag.User = user;
                return View();
            }
    ExceptionType:捕获异常的类型
    View:特定的Error视图
    1. 在控制器中添加特性

    2. Error视图:创建当前控制器对应的View文件夹中或在Shared文件夹中

    3. 应用次特性后,Web.Config中定义的错误处理配置将失效

    在Error视图中可以实现错误的详细信息

    原因是:在发生错误时,HandleError会将异常信息封装成一个HandleErrorInfor对象,然后传递给Error视图

常见的错误状态码

404:表示未找到文件

403:表示禁止访问

500:内部服务器错误

[https://www.cnblogs.com/daiyacheng1991/p/11411511.html]:

状态码 类别 原因
1xx Informational(信息性状态码) 接收的请求正在处理
2xx Success(成功状态码) 请求正常处理完毕
3xx Redirection(重定向状态码) 需要进行附加操作以完成请求
4xx Client Error(客户端错误状态码) 服务器无法处理请求
5xx Server Error(服务器错误状态码) 服务器处理请求错误

你可能感兴趣的:(ASP.NET MVC --- 网站错误处理)