// -----------------------------------------------------------------------
// <copyright file="CustomExceptionAttribute.cs" company="技术支持——谭明超">
// Copyright (c) 2016 QS.Web.Extensions. All rights reserved.
// </copyright>
// <last-editor>谭明超</last-editor>
// <last-date>2016/8/2 20:56:16</last-date>
// ----------------------------------------------------------------------- using System;
using System.Web;
using System.Web.Mvc; namespace QS.Web.Extensions
{
public class CustomExceptionAttribute : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
Exception exception = filterContext.Exception;
if (filterContext.ExceptionHandled == true)
{
return;
}
HttpException httpException = new HttpException(null, exception);
//filterContext.Exception.Message可获取错误信息 /*
* 1、根据对应的HTTP错误码跳转到错误页面
* 2、这里对HTTP 404/400错误进行捕捉和处理
* 3、其他错误默认为HTTP 500服务器错误
*/
if (httpException != null && (httpException.GetHttpCode() == || httpException.GetHttpCode() == ))
{
filterContext.HttpContext.Response.StatusCode = ;
filterContext.HttpContext.Response.Write("错误的请求路径");
filterContext.HttpContext.Response.WriteFile("~/HttpError/404.html");
}
else
{
filterContext.HttpContext.Response.StatusCode = ;
filterContext.HttpContext.Response.Write("服务器内部错误");
filterContext.HttpContext.Response.WriteFile("~/HttpError/500.html");
}
/*---------------------------------------------------------
* 这里可进行相关自定义业务处理,比如日志记录等
---------------------------------------------------------*/ //设置异常已经处理,否则会被其他异常过滤器覆盖
filterContext.ExceptionHandled = true; //在派生类中重写时,获取或设置一个值,该值指定是否禁用IIS自定义错误。
filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
}
}
}

该源码源自网上,,,,不记得哪里的了

MVC Filter自定义异常(拦截)的更多相关文章

  1. 1.5(Spring MVC学习笔记) 拦截器(Interceptor)

    一.拦截器 1.1拦截器简介 Spring中的拦截器类似Servlet中的过滤器(Filter),主要用于拦截用户请求, 并进行一定的处理操作(如验证权限.记录日志.设置编码方式等). 1.2拦截器实 ...

  2. Spring MVC中的拦截器/过滤器HandlerInterceptorAdapter的使用

    一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的 而在Spring中,基于Filter这种方式可以实现Bean预处理.后处理. 比如注入FilterRegistrationBean,然后 ...

  3. Spring Mvc 的自定义拦截器

     spring mvc的拦截器 SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户 ...

  4. Spring mvc interceptor配置拦截器,没有登录跳到登录页

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  5. MVC Filter 实现方式和作用范围控制

    Asp.Net MVC Filter 实现方式和作用范围控制 MVC中的Filte 简单又优雅的实现了AOP ,在日志,权限,缓存和异常处理等方面用的比较多.但本文不是讨论Filter这些功能点,而是 ...

  6. spring mvc中的拦截器小结 .

    在spring mvc中,拦截器其实比较简单了,下面简单小结并demo下. preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们上一章的Control ...

  7. 学习之-ASP.NET MVC Filter

    MVC Filter 是典型的AOP应用,对MVC框架处理客户端请求注入额外的一些逻辑,如日志记录.缓存处理.异常处理和权限验证,性能检测(横切关注点),而这些逻辑通常与主要业务无关,被独立分开作为公 ...

  8. 利用Filter和拦截器,将用户信息动态传入Request方法

    前言: 在开发当中,经常会验证用户登录状态和获取用户信息.如果每次都手动调用用户信息查询接口,会非常的繁琐,而且代码冗余.为了提高开发效率,因此就有了今天这篇文章. 思路: 用户请求我们的方法会携带一 ...

  9. Java Filter(拦截器)

    多个Filter按照在配置文件中配置的filter顺序执行. 在web.xml文件中配置该Filter,使用init-param元素为该Filter配置参数,init-param可接受如下两个子元素: ...

随机推荐

  1. [转]用C#实现的条形码和二维码编码解码器

    条形码的标准: 条形码的标准有ENA条形码.UPC条形码.二五条形码.交叉二五条形码.库德巴条形码.三九条形码和128条形码等,而商品上最常使用的就是EAN商品条形码.EAN商品条形码亦称通用商品条形 ...

  2. [TOP]疯狂的投资

    [TOP]疯狂的投资 这是罗辑思维一期<疯狂的投资>的节目笔记,这期主要是通过菲尔德铺设横跨大西洋的电缆的故事讲了创业者需要的特质和<二十一世纪资本论>的一个观念:随着自由市场 ...

  3. Linux Kernel Schduler History And Centos7.2's Kernel Resource Analysis

    本文分为概述.历史.el7.2代码架构图解三部分. 解决的问题: a.Kernel调度发展过程: b.以架构图的方式,详解el7.2具体调度实现.内核线程模型.调度时间片计算,以及探究整个Kernel ...

  4. Android项目开发全程(一)--创建工程

    每个程序员都知道,项目工程的整体架构对开发有着决定性的影响,在后续的开发工作中,能不能有效的减少代码的重复量和有效的人员分工取决于前期工程整体的架构.刚参加工作还不到一个月就意识到之前做的项目在架构方 ...

  5. Asp.Net MVC4新特性指南(2):新特性介绍

       上一章讲解了最基本的MVC4说明.今天就介绍下几种新特性的使用例子:   就当大家有MVC3的基础了.在这个基础上在看下面的介绍就容易多了.1.Web API MVC4包括一个更好的解决方案:A ...

  6. HDOJ-ACM1018(JAVA)

    题意: 求n!的位数,0<n<10^7 思路:log10(1)+log10(2)+···+log10(n) = log10(n!)   [题目的考点就在这吧] 解题: import jav ...

  7. weblogic启动时日志重定向(nohup.out)

    由于weblogic使用  nohup ./startWebLogic.sh &   启动时会将所有日志打印到nohup.out上,长此以往会导致该文件越来越大,不便于管理. 故下面介绍如何重 ...

  8. VPS选购及辨别vps虚拟化技术

    现在国内外的VPS(Virtual Private Server)服务商非常多,每个服务商使用的VPS架构都不同.VPS属于虚拟化服务器,中文名:虚拟专用服务器. 常见的VPS虚拟化架构有多种:Ope ...

  9. Java多重if....else if

    public class HelloWorld { public static void main(String[] args) { int age=25; if(age>60){ System ...

  10. 【面试虐菜】—— Oracle中CHAR、VARCHAR的区别

    1.CHAR. CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取 ...