gpt4 book ai didi

asp.net-mvc - 如何在 ASP.NET MVC 3 应用程序中处理未捕获的异常?

转载 作者:行者123 更新时间:2023-12-03 12:32:55 27 4
gpt4 key购买 nike

我想在我的 ASP.NET MVC 3 应用程序中处理未捕获的异常,以便我可以通过应用程序的错误 View 将错误传达给用户。如何拦截未捕获的异常?我希望能够在全局范围内执行此操作,而不是针对每个 Controller (尽管我也不介意知道如何执行此操作)。

最佳答案

您可以在 Global.asax 中设置全局错误过滤器

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}

上面设置了一个默认错误处理程序,它将所有异常都定向到标准错误 View 。错误 View 输入到 System.Web.Mvc.HandleErrorInfo暴露异常细节的模型对象。

您还需要在 web.config 中打开自定义错误才能在本地计算机上看到它。
<customErrors mode="On"/>

您还可以为特定的错误类型定义多个过滤器:
filters.Add(new HandleErrorAttribute
{
ExceptionType = typeof(SqlException),
View = "DatabaseError",
Order = 1
});

/* ...other error type handlers here */

filters.Add(new HandleErrorAttribute()); // default handler

请注意 HandleErrorAttribute只会处理 MVC 管道内部发生的错误(即 500 个错误)。

关于asp.net-mvc - 如何在 ASP.NET MVC 3 应用程序中处理未捕获的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596648/

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