0
예외를 throw하려고 시도 중입니다. HandleException
특성에서 catch하고 클라이언트에 올바르게 반환하려고합니다.예외 처리/예외 유형을 기반으로 한 HTTP 상태 코드
Login()
기능에
[HandleException(Type = typeof(UserNotFoundException), Status = HttpStatusCode.NotFound)]
[HandleException(Type = typeof(LoginFailedException), Status = HttpStatusCode.Unauthorized)]
public UserProfile Login(UserCredentials userCred)
가 나도 UserNotFoundException
또는 LoginFailedException
을 던져 : 여기
내 HandleExceptionAttribute
은 다음과 같습니다 : 내가 원하는 것은 던져 질 것입니다 예외의 종류를 처리하고 난 HttpStatusCode를 지정하는 속성에 적절하게 처리 할 수있을 것입니다
public class HandleExceptionAttribute : ExceptionFilterAttribute
{
public Type Type { get; set; }
public HttpStatusCode Status { get; set; }
public override void OnException(HttpActionExecutedContext context)
{
var ex = context.Exception;
ResponseHelper.CreateException(Status, ex.Message);
}
}
.
이 코드에서 문제는 항상 맨 위에있는 특성이 호출된다는 것입니다. 따라서 예외가 LoginFailedException
인 경우에도 항상 UserNotFoundException
및 404 코드가 클라이언트에 반환됩니다.
어떻게하면됩니까?
대단히 감사합니다. – Gaui