Я не уверен, что не так с вашим примером, но вот как я это сделал.
Сначала фильтр исключений:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
public class CustomExceptionFilterAttribute : ExceptionFilterAttribute
{
public override void OnException(ExceptionContext context)
{
Затем я добавляю фильтр к весь контроллер, а не просто действие, хотя это тоже может сработать - я никогда не пробовал:
[ServiceFilter(typeof(CustomExceptionFilterAttribute))]
public class MyController : ControllerBase
{
А в Startup.cs, ConfigureServices, добавить поддержку DI:
services.AddScoped<CustomExceptionFilterAttribute>();
Этот блог более подробно описан.