gpt4 book ai didi

asp.net - ASP.NET MVC 5中的ErrorHanldeAttribute或OnException方法未处理异常

转载 作者:行者123 更新时间:2023-12-03 07:58:59 26 4
gpt4 key购买 nike

我试图实现一种全局异常处理技术,以避免在 Controller 的每个操作上使用try/catch块,但是在达到重写的OnException方法或ErrorHandleAttribute之前,我的应用程序崩溃了。

这是一个简化的测试代码:

[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}

public ActionResult Test()
{
throw new Exception("Exception Test");
}

protected override void OnException(ExceptionContext filterContext)
{
if (filterContext == null || filterContext.ExceptionHandled)
{
return;
}

var message = filterContext.Exception.Message;
filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.BadRequest, message);
filterContext.ExceptionHandled = true;
}
}

并在Web.Config中:
<system.web>
<customErrors mode="On" defaultRedirect="Error"/>

如果我在“throw”行上设置一个断点并尝试访问/Home/Test,则我的应用程序将崩溃,只有在此之后,OnException方法和HandleErrorAttribute才会到达。

我想念什么吗?

谢谢。

最佳答案

您需要注册HandleError过滤器。

filters.Add(new HandleErrorAttribute{View = "Error"});

关于asp.net - ASP.NET MVC 5中的ErrorHanldeAttribute或OnException方法未处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37813300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com