- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想处理应用程序范围的错误并在 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 或 OnException() 上的错误,我们是否仍然应该在 Application_Error() 中处理它。
我们什么时候应该使用Application_Error()?
最佳答案
HandleErrorAttribute
是通过属性应用的 MVC 过滤器。您可以提供一个 View 名称以在发生异常时显示,还可以指定此过滤器适用的异常的基本(或特定)类型。如果未提供 View 名称,它将查找名为“Error”的 View 。正如您已经注意到的,您可以将其应用于各种范围。它允许您根据异常指定不同的“错误页面” View 。
Controller.OnException
是一个方法,如果您的任何操作最终抛出错误,就会调用该方法。
以上两者都是 MVC 概念,也是 MVC 管道的一部分,它位于 ASP.NET 管道的顶部,如果您使用上述方法处理异常,它不会传播到 Application_Error
,但是像 http 错误 404、500 之类的东西,如果我没记错的话还会这样。
用什么?
一定要研究 ELMAH 以进行应用程序范围的错误日志记录和我的 blog post关于 ELMAH 和 ASP.NET MVC
关于显示错误页面,您应该只使用 [HandleError]
和 HandleErrorAttribute
就可以了,因为它已经为您处理了所有内容(可选过滤和可选自定义错误页面)每个异常类型)。
关于asp.net-mvc - ErrorAttribute vs OnException vs Application_Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318104/
这可能是非常基本的,但我是 Spring Boot(以及 Spring 的许多方面)和 the documentation 的新手。没有直接回答这个问题。 设置 使用最新的 Spring Boot (
如何更改抛出 ResponseStatusException 时暴露的错误属性? 特别是我想隐藏 json 中的 exception、error 和 status 类型,但仅在生产期间。 @R
我正在尝试测试应该使用自定义错误属性的 Spring Boot RestController。 @Bean public ErrorAttributes errorAttributes() {
跟随 Spring Boot documentation我定义了我自己的 ErrorAttributes bean(见下文),我能够使 json 响应显示我想要的信息,包括我自己的错误代码和消息,方法
我想处理应用程序范围的错误并在 asp.net mvc 中显示 ErrorView 页面。有 3 种方法可以做到这一点(或者我知道)。 1) ErrorAttribute in BaseControl
我正在关注 https://www.baeldung.com/spring-webflux-errors在 Spring Webflux 项目中处理错误的教程。 package com.example
我正在关注 https://www.baeldung.com/spring-webflux-errors在 Spring Webflux 项目中处理错误的教程。 package com.example
我最近将项目移动到 SpringBoot 2.0.0.RELEASE 但我遇到了编译问题 The import org.springframework.boot.autoconfigure.web.E
我是一名优秀的程序员,十分优秀!