【问题标题】:Catch Exception from ActionFilter in ExceptionFilter in .net core c#在 .net core c# 的 ExceptionFilter 中从 ActionFilter 中捕获异常
【发布时间】:2021-12-11 20:58:18
【问题描述】:

我有一个ActionFilter.csOnActionExecuting 方法中引发异常,如下所示

if (!token.IsCancellationRequested)
{
    token.Register(() => { throw new OperationCanceledException(token); });
}

我也有全局异常处理程序ExceptionFilter.cs,它的方法OnException有以下代码来处理异常。

if (context.Exception is OperationCanceledException)
{
    Console.WriteLine("Request was cancelled-------####@@@@@@");
}

两者都在Startup.cs注册为

services.AddMvcCore().AddMvcOptions(x => {
                x.Filters.Add<ActionFilter>();
                x.Filters.Add<ExceptionFilter>();
})

现在抛出异常后,它应该被 ExceptionFilter 捕获,但它不起作用。控制台中没有打印任何内容。如何捕获从 ActionFilter.cs 抛出的这个异常?

提前致谢。

【问题讨论】:

    标签: c# .net exception action-filter


    【解决方案1】:

    切换过滤器注册轮次,以便首先注册 ExceptionFilter。

    services.AddMvcCore().AddMvcOptions(x => {
        x.Filters.Add<ExceptionFilter>();
        x.Filters.Add<ActionFilter>();
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多