微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – ErrorAttribute vs OnException与Application_Error

我想处理应用程序范围的错误,并在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即可,因为它已经处理了所有内容(可选过滤和每个异常类型的可选自定义错误页面).

原文地址:https://www.jb51.cc/aspnet/250193.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐