为什么asp.net核心视图中抛出的异常不会通过全局异常过滤器?如何捕获并记录这些异常?
答案 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);
}
}