ASP.NET核心异常处理视图

时间:2016-12-01 15:57:08

标签: exception-handling asp.net-core asp.net-core-mvc

为什么asp.net核心视图中抛出的异常不会通过全局异常过滤器?如何捕获并记录这些异常?

1 个答案:

答案 0 :(得分:3)

由于在视图执行之前执行了异常过滤器,因此您无法使用异常过滤器捕获视图中的异常。要抓住这种类型的例外:

1-您可以使用UseExceptionHandler全局处理所有异常(这不是特定于mvc的解决方案)。

2-使用ResultFilter来捕获视图中的异常(这知道mvc上下文):

public class ExceptionResultFilter : ResultFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext context)
    {
        if(context.Exception != null)
        {
            // log exception
        }
        base.OnResultExecuted(context);
    }
}