Код: Выделить всё
public class GlobalExceptionHandler : IExceptionHandler {
private readonly ILogger _logger = Log.ForContext(typeof(GlobalExceptionHandler));
public async ValueTask TryHandleAsync(HttpContext httpContext, Exception exception, CancellationToken cancellationToken)
{
_logger.Error(exception, "Global Exception Handler");
var problemDetails = new ProblemDetails{
Status = (int)HttpStatusCode.InternalServerError,
Title = "An exception occurred",
Detail = exception.Message };
httpContext.Response.StatusCode = problemDetails.Status.Value;
httpContext.Response.ContentType = "application/problem+json";
await httpContext.Response.WriteAsJsonAsync(problemDetails, cancellationToken);
return true;
}
}
1. Почему моя реализация IExceptionHandler не перехватывает все исключения в приложении?
3. Если `IExceptionHandler` не подходит для этой цели, каков рекомендуемый способ глобальной обработки всех необработанных исключений без написания специального промежуточного программного обеспечения (причина, по которой мы используем Microsoft.AspNetCore.Diagnostics.IExceptionHandler, заключается в том, что он не требует от нас написания промежуточное программное обеспечение)?
Будем очень признательны за любые рекомендации или передовой опыт!
Подробнее здесь: https://stackoverflow.com/questions/789 ... exceptions