프로그래밍/Spring
[Spring] @ControllerAdvice, @ExceptionHandler로 익셉션 처리하기
테타니
2022. 9. 19. 15:59
https://velog.io/@midas/Exception-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95
[다른 예제 소스]
@RestControllerAdvice
@Slf4j
public class ExceptionAdvice {
//private final MessageSource messageSource;
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
protected ServerErrorResponse defaultException(HttpServletRequest request, Exception e) {
log.error("Unknown server error. URL : " + request.getRequestURI(), e);
return new ServerErrorResponse("01", "서버 내부 오류", "API 서버에서 오류가 발생하였습니다.", "서비스 제공자에게 문의하시기 바랍니다.", e.toString());
}
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
protected ServerErrorResponse handleHttpRequestMethodNotSupportedException(HttpServletRequest request, HttpRequestMethodNotSupportedException e) {
log.info("HttpRequestMethodNotSupportedException. URL : " + request.getRequestURI(), e);
return new ServerErrorResponse("02", "잘못된 요청", "잘못된 HTTP Request 요청입니다.", "해당 요청의 GET/POST Method를 확인하시기 바랍니다.", e.toString());
}
@ExceptionHandler(CAuthenticationEntryPointException.class)
@ResponseStatus(HttpStatus.UNAUTHORIZED)
protected UnauthenticatedResponse handleCAuthenticationEntryPointException(HttpServletRequest request, CAuthenticationEntryPointException e) {
log.info("Unauthenticated", e);
return new UnauthenticatedResponse("20", "미인증된 사용자", "인증되지 않은 사용자는 API 접근이 불가능합니다.", "인증을 위한 JWT가 유효한지 확인하시기 바랍니다.");
}
(....)
}