在 .net core c# 的 ExceptionFilter 中从 ActionFilter 中捕获异常
Posted
技术标签:
【中文标题】在 .net core c# 的 ExceptionFilter 中从 ActionFilter 中捕获异常【英文标题】:Catch Exception from ActionFilter in ExceptionFilter in .net core c# 【发布时间】:2021-12-11 20:58:18 【问题描述】:我有一个ActionFilter.cs
在OnActionExecuting
方法中引发异常,如下所示
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 抛出的这个异常?
提前致谢。
【问题讨论】:
【参考方案1】:切换过滤器注册轮次,以便首先注册 ExceptionFilter。
services.AddMvcCore().AddMvcOptions(x =>
x.Filters.Add<ExceptionFilter>();
x.Filters.Add<ActionFilter>();
)
【讨论】:
以上是关于在 .net core c# 的 ExceptionFilter 中从 ActionFilter 中捕获异常的主要内容,如果未能解决你的问题,请参考以下文章
.Net Core、c# 和 Fitnesse Fit 固定装置
如何在 Asp.NET Core WEB API 中使用 .Net (C#) 在 Payload 中创建具有自定义 JSON 声明的 JWT 令牌