加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ErrorAttribute vs OnException与Application_Er

发布时间:2020-12-15 23:18:02 所属栏目:asp.Net 来源:网络整理
导读:我想处理应用程序范围的错误,并在asp.net mvc中显示一个ErrorView页面. 有3种方法(或我知道). 1) ErrorAttribute in BaseController:Controller class. Can be used on individual Action/Controller/BaseController.2) Override OnException() in the BaseC
我想处理应用程序范围的错误,并在asp.net mvc中显示一个ErrorView页面.
有3种方法(或我知道).
1) ErrorAttribute in BaseController:Controller class.
     Can be used on individual Action/Controller/BaseController.
2) Override OnException() in the BaseController:Controller class.
     Will work on Controllers derived from BaseController
3) Application_Error in Global_aspx.

最好的做法是什么
这些方法中的哪一种应用于应用范围广泛的错误处理,或者我们应该使用多个或仅一个.

如果我们在BaseController上处理ErrorAttribute Or / And OnException()的错误,那么我们仍然在Application_Error()中处理它.

我们什么时候应用Application_Error()?

解决方法

> HandleErrorAttribute是通过该属性应用的MVC过滤器.如果发生异常,您可以提供视图名称,并且还可以指定此过滤器应用于的基本(或特定)异常类型.如果没有提供视图名称,它将会查找名为“Error”的视图.您已经注意到,您可以将其应用于各种范围.它允许您根据异常指定不同的“错误页面”视图.
> Controller.OnException是一种方法,如果您的任何操作最终导致错误,该方法将被调用.
>上述两者都是MVC概念和MVC管道的一部分,它位于ASP.NET流水线之上,如果使用上述处理异常,它将不会传播到Application_Error,而是像http错误404,500,如果我记得正确的话.

有什么用?

肯定地看看ELMAH的应用范围的错误记录和我的blog post关于ELMAH和ASP.NET MVC

关于显示错误页面,只要使用[HandleError]和HandleErrorAttribute即可,因为它已经处理了所有内容(可选过滤和每个异常类型的可选自定义错误页面).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读