Я выкидываю собственную ошибку с текстом, но мой API возвращает ошибку 500 клиенту без описания (мне это нужно) - PullRequest
0 голосов
/ 08 апреля 2020

Я создал ASP. NET Core Web API. Я добавляю собственную ошибку с некоторым текстом и пытаюсь получить этот текст в моем клиенте. Когда я делаю это локально, это работает. Но когда я разместил его в Azure, он не работает - я просто получаю ошибку 500.

Это в моем контроллере:

 catch (LoginException ex)
 {
     throw new LoginException(ex.Message);
 }

Вот как я выкидываю свою ошибку

if (GetPerson(person.NickName))
    throw new LoginException("Text");

Это моя ошибка:

public class LoginException:Exception
{
    public LoginException(string message) : base(message)
    {
    }
}

1 Ответ

1 голос
/ 08 апреля 2020

Часто ошибка 500 - ошибка бэкэнда. Лучше бросить ваше исключение в другой класс (например, LoginService) и перехватить его в вашем контроллере. Тогда вы не должны генерировать исключение в контроллере, а должны отправлять нормальный ответ, например return BadRequest(ex.message).

...