Обработка ошибок в FastEndpoints не работаетC#

Место общения программистов C#
Anonymous
Обработка ошибок в FastEndpoints не работает

Сообщение Anonymous »

Я пытаюсь глобально обрабатывать ошибки в своем проекте. Мне ненавистна идея использовать try-catch в каждой конечной точке.
У меня есть следующая конечная точка для тестирования:

Код: Выделить всё

public sealed class Endpoint(SepukuDbContext dbContext, IJwtTokenService jwtTokenService, IUserAuthorizationService userAuthorizationService) : Endpoint
{
public override async Task HandleAsync(Request req, CancellationToken ct)
{
var user = await dbContext.Users.Where(x => x.Email == req.Email).Select(x => x).SingleOrDefaultAsync(ct);

if (user is null)
{
ThrowError("The supplied credentials are invalid!");
return;
}

if (userAuthorizationService.IsAuthorized(user, req.Password))
{
await SendAsync(
new
{
Username = user.Name,
Token = jwtTokenService.GetToken(user),
});
}
else
{
ThrowError("The supplied credentials are invalid!");
}
}
}
Чтобы проверить обработку ошибок, jwtTokenService.GetToken(user) выдает InvalidDataException.
Однако конечные точки возвращают 200 Ответ.ОК. Почему?
Я добавил app.UseDefaultExceptionHandler() для глобальной обработки ошибок, но это не помогло.

Подробнее здесь: https://stackoverflow.com/questions/790 ... s-not-work

Вернуться в «C#»