Обработка исключений в моделях MVC - PullRequest
1 голос
/ 21 февраля 2020

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"
            };
        }
    }
}

Потому что теперь я получаю следующее:

Image!

...