UseExceptionHandler () не перехватывает и не обрабатывает исключения, вызываемые в модели MVC. UseExceptionHandler () перехватывает все другие исключения.
Модель расписания:
[NonSerialized]
public LessonType _lessonType;
[BsonElement("lessonType")]
[JsonProperty("lessonType")]
[BsonRequired]
[JsonRequired]
public LessonType
{
get => _lessonType;
set
{
if(Enum.IsDefined(typeof(LessonType), value))
{
this._lessonType = value;
}
else
{
throw new Exception("Incorrect lesson type."); // <- This exception is marked as unhandled!!! How can I fix it???
}
}
}
Как я могу обработать это исключение с
app.UseExceptionHandler("/error");
и с этим ErrorController.cs
using System;
using Microsoft.AspNetCore.Diagnostics;
using UnikWebApi.Models.Error;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using UnikWebApi.Models;
namespace UnikWebApi.Controllers
{
[ApiController]
public class ErrorController : ControllerBase
{
[AllowAnonymous]
[Route("/error")]
public ActionResult<Error> Get()
{
IExceptionHandlerFeature exceptionContext = HttpContext.Features.Get<IExceptionHandlerFeature>();
return new Error
{
ErrorCode = Problem().StatusCode,
Message = exceptionContext.Error.Message
};
}
[Route("/error/{statusCode}")]
public ActionResult<Error> HandleErrorCode(int statusCode)
{
var statusCodeData = HttpContext.Features.Get<IStatusCodeReExecuteFeature>();
return new Error
{
ErrorCode = statusCode,
Message = "Something went wrong"
};
}
}
}
Потому что теперь я получаю следующее: