c# - 在 mvc4 中捕获未处理的异常

标签 c# asp.net-mvc asp.net-mvc-4

如何在 mvc4 中捕获未处理的异常,[不使用 ELMAH]。 我尝试调用 Application_Error ,它有效但记录了所有错误,包括未找到脚本和未找到不需要的图像路径。

可以排除的错误示例

The controller for path '/Image/*.png' was not found or does not implement IController

The controller for path '/~/Scripts/*.js' was not found or does not implement IController

代码

void Application_Error(object sender, EventArgs e) 
{
   Exception exc = Server.GetLastError();
   //logging Exception (exc)
 }

最佳答案

创建自定义错误处理程序并捕获您想要的(并记录下来)并忽略您不想要的。

CustomHandleErrorAttribute

public class CustomHandleErrorAttribute : HandleErrorAttribute
{
    public override void OnException(ExceptionContext filterContext)
    {
        if (!(filterContext.Exception is InvalidOperationException))
        {
            // log
        }
    }
}

过滤器配置

您需要全局注册错误处理程序。

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

关于c# - 在 mvc4 中捕获未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380177/

相关文章:

c# - MVC4 Controller 将多个 json 对象发布到 Controller ,ajax 发布

c# - MVC Razor C# 用于 HTML img 标签 src 的变量

c# - 数组索引器和任何其他对象索引器有什么区别

C# 属性用法 : only allow attributes on a property with specific data type

c# - 如何使用 ActionLink 生成哈希

c# - 如何在 MVC 中将文本框\输入值从 View 传递到 Controller

c# - 通过注入(inject)在构造函数中创建数据库调用

c# - 使用 dapper 插入 Guid 并检索值

asp.net-mvc - 如何在 Web API .NET Core 的 Controller 之外获取当前用户

asp.net-mvc - DTO 如何适应 MVC 应用程序的存储库+服务模式?