项目:后台管理平台

意义:程序发布后,不应该对用户显示因程序出错和崩溃而出现的错误信息,采用统一友好的错误页面,并将错误信息记录到日志中供管理人员查看。


一、过滤器Filter

  Filter(筛选器)是基于AOP(面向方面编程)的设计,它的作用是对MVC框架处理客户端请求注入额外的逻辑,以非常简单优美的方式实现横切关注点(Cross-cutting Concerns)。横切关注点是指横越应该程序的多个甚至所有模块的功能,经典的横切关注点有日志记录、缓存处理、异常处理和权限验证等。

  MVC框架支持4类Filter,Authorization Filter/Action Filer/Result Filter/Exception Filter,其中Authorization Filter的默认实现AuthorizeAttribute类,Action Filter和Result Filter的默认实现是ActionFilterAttribute类,Exception Filter的默认实现是HandleErrorAttribute。

  Filter可以像标记属性一样用在动作、控制器上,也可以在应用在全局上,在Global.asax.cs和FilterConfig.cs中添加全局绑定。

  如果默认的Filter无法满足开发要求,需要自己开发Filter时,最好的方法是继承默认的类,重写关键函数:

Authorization Filter的扩展通过继承AuthorizeAttribute类,重写权限认证的逻辑函数AuthorizeCore;

Action Filer和Result Filter的扩展通过继承ActionFilterAttribute类,重写OnActionExecuting/OnActionExecuted/OnResultExecuting/OnResultExecuted函数;

Exception Filter的扩展通过继承HandleErrorAttribute类,重写OnException函数。


二、异常处理

  在项目中采用了全局性的异常处理,因此通过继承HandleErrorAttribute,并重写OnException函数,目前只是增加了异常的日志记录。

  出现了异常还需要一个对用户友好的显示页面,在Web.config文件中 <system.web> 节点下添加如下节点:

<customErrors mode="On">
<error statusCode ="" redirect="/Error/Index"/>
</customErrors>

对于程序运行时抛出的错误,系统会在~/Views/[current controller]或~/Views/Shared目录下查找名为Error的视图;对于404这类的HTTP错误,可以通过添加对应的节点,指定其显示的错误页面,再编写对应的控制器、视图即可。


参考资源:

http://www.cnblogs.com/willick/p/3331520.html

http://www.cnblogs.com/powertoolsteam/p/MVC_Six.html

关键字:.NET MVC,Filter,EXCEPTION,AOP

[.Net MVC] 过滤器以及异常处理的更多相关文章

  1. mvc过滤器学习(1)

    mvc 过滤器结构图 AuthorizeAttribute AuthorizeAttribute是IAuthorizationFilter的默认实现,添加了Authorize特性的Action将对用户 ...

  2. mvc自定义全局异常处理

    异常信息处理是任何网站必不可少的一个环节,怎么有效显示,记录,传递异常信息又成为重中之重的问题.本篇将基于上篇介绍的html2cancas截图功能,实现mvc自定义全局异常处理.先看一下最终实现效果: ...

  3. asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码

    重构的乐趣在于精简代码,模块化设计,解耦功能……而对异常处理的重构则刚好满足上述三个方面,下面是我的一点小心得. 一.相关的学习 在文章<精简自己20%的代码>中,讨论了异常的统一处理,并 ...

  4. MVC过滤器详解

    MVC过滤器详解   APS.NET MVC中(以下简称"MVC")的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理. ...

  5. MVC过滤器使用案例:统一处理异常顺道精简代码

    重构的乐趣在于精简代码,模块化设计,解耦功能……而对异常处理的重构则刚好满足上述三个方面,下面是我的一点小心得. 一.相关的学习 在文章<精简自己20%的代码>中,讨论了异常的统一处理,并 ...

  6. ASP.NET MVC 过滤器详解

    http://www.fwqtg.net/asp-net-mvc-%E8%BF%87%E6%BB%A4%E5%99%A8%E8%AF%A6%E8%A7%A3.html 我经历了过滤器的苦难,我想到了还 ...

  7. ASP.NET MVC过滤器(一)

    MVC过滤器是加在 Controller 或 Action 上的一种 Attribute,通过过滤器,MVC 网站在处理用户请求时,可以处理一些附加的操作,如:用户权限验证.系统日志.异常处理.缓存等 ...

  8. MVC过滤器详解和示例

    原文  http://blog.csdn.net/ankeyuan/article/details/29624005 MVC过滤器一共分为四个:ActionFilter(方法过滤器),ResultFi ...

  9. MVC过滤器的详细讲解和示范样本

    MVC共有4个过滤器:ActionFilter(方法过滤器),ResultFilter(结果过滤器.感觉是不是很好,所以称它为),AuthorizationFilter(授权过滤器).Exceptio ...

随机推荐

  1. Vim Skills——Windows利用Vundle和Github进行Vim配置和插件的同步

    OS:Windows Vim安装完成之后,目录如下 vim73:vim运行时所需的文件,对应目录为$VIMRUNTIME变量 vimfiles:第三方的文件,对应目录为$VIM/vimfiles _v ...

  2. java的socket 编程

    之前在学校的时候,有时间但是总是学不进去,现在工作了,总想多学点东西,但是又是没有时间来学习,只能在工作的闲暇之余,给自己充充电,随着学习的深入,越来月发现Java真的很强大,几乎什么都可以做的,以下 ...

  3. SCOM MP中的PowerShell脚本

    该脚本可在MP中运行 #param ($file,$threshold) #此处可定义file 和 threshold 参数,该参数可以从脚本外部接收 $threshold = 10 $file = ...

  4. 什么是IDOC,以及IDOC的步骤

    创建IDOC:   第一步:WE31 创建IDOC所包含的字段.   第二步:WE30 创建IDOC 把Segment分配给IDOC   第三步:WE81  创建信息类型   第四步:WE82   把 ...

  5. Android中定时器的3种实现方法

    原文:http://blog.csdn.net/wulianghuan/article/details/8507221 在Android开发中,定时器一般有以下3种实现方法: 一.采用Handler与 ...

  6. Android 屏幕画笔实现

    Tuya.rar

  7. Sublime Text 3 史上最性感的编辑器

    下载 / 安装 windows / MAC OS 官网下载,双击安装,这个都会吧- linux linux下安装,一种办法是从官网下载 tar.bz ,手动安装. 这里介绍用 apt-get 自己主动 ...

  8. Linux lsof命令使用小结

        lsof(list open files)是一个列出当前系统打开文件的工具.在Linux环境下,任何事物都是以文件的形式存在,通过文件不仅可以访问常规数据,还可以访问网络连接和硬件.所以,如传 ...

  9. iOS 对网络视频采集视频截图

    在播放网络视频是  经常可以看到播放按钮下面是该制品的某个截图 : 一般情况下  后台服务器是可以把视频截图一起返回给你 你直接拿到图片显示就可以了 但是当后台没有提供时  我们也可以根据视频地址 自 ...

  10. 排序并获取index的顺序

    //排序并获取index的顺序:4,7,2,9-->9,7,4,2-->4,2,1,3 Array.prototype.getIndex=function(){ var orderLeng ...