ASP.NET网站错误处理

关于错误处理

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

  1. 一般适合语句的错误处理
  2. 不适合页面不存在等问题的处理

错误处理配置

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

在system.web节点中添加配置

<customErrors defaultRedirect="~/ErrorPage.html" mode="RemoteOnly">
      <error statusCode="404" redirect="~/NonFound.html"/>
    </customErrors>

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]:

状态码类别原因
1xxInformational(信息性状态码)接收的请求正在处理
2xxSuccess(成功状态码)请求正常处理完毕
3xxRedirection(重定向状态码)需要进行附加操作以完成请求
4xxClient Error(客户端错误状态码)服务器无法处理请求
5xxServer Error(服务器错误状态码)服务器处理请求错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值