asp.net core web apis에서 포괄적 인 예외 처리
이 기사는 ASP.NET Core Web API 내에서 인증 필터를 포함한 모든 필터에서 발생하는 예외를 안정적으로 처리하는 문제를 해결합니다. ASP.NET Core와 Classic ASP.NET Web API의 예외 처리의 차이점은 중요하며 종종 개발자에게 혼란을 유발합니다.
전통적인 예외 필터의 제한 사항 주소
ASP.NET Core의 예외 필터는 동작 예외를 처리 할 수 있지만 역사적으로 권한 부여 필터와 같은 다른 필터 내에서 발생하는 예외를 캡처하는 데 어려움을 겪었습니다. 이 제한은보다 강력한 접근법이 필요합니다.
IExceptionHandler 솔루션 (Asp.net Core 8 이상)
asp.net core 8 이상 버전은 exceptionhandler
인터페이스를 소개하여 강력하고 유연한 솔루션을 제공합니다. IExceptionHandler
는 다음을 허용합니다 :
IExceptionHandler 구현 :
Microsoft.aspnetCore.diagnostics를 사용하여;
공개 클래스 MyExceptionHandler : exceptionHandler
{
Public Async valuetask using Microsoft.AspNetCore.Diagnostics;
public class MyExceptionHandler : IExceptionHandler
{
public async ValueTask TryHandleAsync(HttpContext context, Exception exception, CancellationToken cancellationToken)
{
// Implement your exception handling logic here. This could include logging,
// returning a custom error response, etc.
return true; // Return true to indicate the exception was handled.
}
}
builder.Services.AddExceptionHandler();
app.UseExceptionHandler(_ => { });
등록 순서 : Multiple
exceptionHandler returning
true return 값은 후속 핸들러에게 예외를 전달합니다.
이 메소드는 이전 접근법의 한계를 해결하여 ASP.NET Core Web API에서 포괄적 인 예외 처리를 보장합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3