Почему моя собственная реализация IExceptionHandler не перехватывает все исключения в ASP.NET Core?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему моя собственная реализация IExceptionHandler не перехватывает все исключения в ASP.NET Core?

Сообщение Anonymous »

Я работаю над приложением ASP.NET Core и реализовал собственный глобальный обработчик исключений, используя интерфейс IExceptionHandler. Моя цель — перехватить и обработать все необработанные исключения, возникающие в приложении, и вернуть ответ «ProblemDetails». Вот код моего класса GlobalExceptionHandler:

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

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;
}
}
Однако я заметил, что этот обработчик перехватывает только те исключения, которые создаются явно (например, `throw new Exception("...")`), а не те, которые возникают естественным образом внутри приложения. , например исключения нулевых ссылок или другие ошибки времени выполнения. Вопросы:
1. Почему моя реализация IExceptionHandler не перехватывает все исключения в приложении?

3. Если `IExceptionHandler` не подходит для этой цели, каков рекомендуемый способ глобальной обработки всех необработанных исключений без написания специального промежуточного программного обеспечения (причина, по которой мы используем Microsoft.AspNetCore.Diagnostics.IExceptionHandler, заключается в том, что он не требует от нас написания промежуточное программное обеспечение)?
Будем очень признательны за любые рекомендации или передовой опыт!

Подробнее здесь: https://stackoverflow.com/questions/789 ... exceptions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему моя собственная реализация IExceptionHandler не перехватывает все исключения в ASP.NET Core?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • IExceptionHandler не вызывается при создании нового исключения .NET 8
    Гость » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Гость
  • ExceptionHandler не перехватывает исключения исключения
    Anonymous » » в форуме JAVA
    0 Ответы
    69 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

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