Как использовать IExceptionHandler в ASP. NET CORE MVC? - PullRequest
0 голосов
/ 14 февраля 2020

У меня проблемы с использованием IExceptionHandler в моем проекте.

Нужно ли устанавливать какие-либо пакеты NuGet?

Когда я пытаюсь использовать, Visual Studio не находит ссылку. Он спрашивает, хочу ли я создать интерфейс с именем IExceptionHandler.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace EventMotors.Controllers
{
    public class ErrorController : Controller
    {
        private readonly IExceptionHandler _exceptionHandler;

        public ErrorController(IExceptionHandler exceptionHandler)
        {
            _exceptionHandler = exceptionHandler;
        }
    }
}

1 Ответ

0 голосов
/ 17 февраля 2020

IExceptionHandler не в asp. net ядре. В случае ошибки вы можете использовать IExceptionHandlerPathFeature для доступа к исключению и исходному пути запроса в контроллере или на странице обработчика ошибок:

var exceptionHandlerPathFeature =
    HttpContext.Features.Get<IExceptionHandlerPathFeature>();
if (exceptionHandlerPathFeature?.Error is FileNotFoundException)
{
    ExceptionMessage = "File error thrown";
}
if (exceptionHandlerPathFeature?.Path == "/index")
{
    ExceptionMessage += " from home page";
}

См. Документ:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling?view=aspnetcore-3.1

...