- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ASP.NET MVC 网络应用程序,我正在尝试改进它的错误处理能力。我阅读了 HandleErrorAttribute 基类,并想将其用于我的 Controller 类。但是,当我从一个用该属性装饰的 Controller 类中的方法抛出测试异常时,派生类中的 OnException 重写不会被触发。我没有触发派生错误处理类的 OnException 方法,而是看到了 XML 格式的一般错误消息,并且一般错误消息在我的应用程序中的任何地方都找不到:
<Error>
<Message>An error has occurred.</Message>
</Error>
我做错了什么?
请注意,我尝试将以下自定义错误元素添加到我的 web.config 文件中的 system.web 元素,如这篇 SO 帖子所示,但是 它没有帮助:
ASP.net MVC [HandleError] not catching exceptions
<customErrors mode="On" defaultRedirect="Error" />
这是我的 HandleErrorAttribute 派生类:
public class HandleControllerErrors : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
// Breakpoint set here never hit.
Exception ex = filterContext.Exception;
filterContext.ExceptionHandled = true;
var model = new HandleErrorInfo(filterContext.Exception, "Controller", "Action");
filterContext.Result = new ViewResult()
{
// Use the ErrorInController view.
ViewName = "ErrorInController",
ViewData = new ViewDataDictionary(model)
};
}
}
下面是我如何装饰我的 Controller 类。我有一个方法在 try/catch block 中强行抛出 not 的异常。:
[HandleControllerErrors]
public class ValuesController : ApiController
{
[Route("Api/TestException/")]
public IHttpActionResult TestException()
{
throw new InvalidCastException("Fake invalid cast exception.");
}
}
最佳答案
ApiController 与 MVC Controller 不同,因此这可能行不通。 Web API 中的错误处理方式略有不同。检查以下链接以了解 Web API 的异常处理属性:
http://www.asp.net/web-api/overview/error-handling/exception-handling
关于c# - HandleErrorAttribute 的派生类是不是捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460869/
我想在同一页面上显示所有错误(不重定向/更改页面内容)发生的地方(例如 javascript 警报),我认为错误页面可以像 PartialView 一样加载。我尝试创建自定义 HandleErrorA
我有一个 ASP.NET MVC 网络应用程序,我正在尝试改进它的错误处理能力。我阅读了 HandleErrorAttribute 基类,并想将其用于我的 Controller 类。但是,当我从一个用
我正在将 .Net 4.6.2 项目迁移到 Net Core 2。 相当于HandleErrorAttribute ?接收错误低于第二行 public static void RegisterGlob
在我使用的 MVC3 Web 应用程序中 public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
我对在我的 MVC 5 应用程序中使用 HandleErrorAttribute 的最佳方式有疑问。正如我们所知,我们可以像这样将此属性添加到全局过滤器: filters.Add(new Handl
我有一个向 MVC Controller 提交表单的函数,如下 - function submitForm() { $.ajax ({
我想用一个名为 HandleErrorsWithLogging 的新版本覆盖 HandleErrorAttribute。本质上,我希望它将未处理的异常记录到我的日志文件中,然后继续使用 HandleE
在我的 ASP.NET MVC 2 应用程序中,我使用 HandleErrorAttribute 在出现未处理异常的情况下显示自定义错误页面,并且除非异常发生在 Ajax.ActionLink 调用的
我无法在我的 MVC4 应用程序中使用自定义 HandleErrorAttribute。 记录异常的自定义类 public class HandleAndLogErrorAttribute : H
我已经在我的一个 ASP.NET MVC 项目中实现了 Elmah。另外我做了以下事情: 我在这个 post 中实现了 Atif Aziz 编写的 ElmahHandleErrorAttribute
我是一名优秀的程序员,十分优秀!