GlobalExceptionHandler를 이용해 예외 처리를 구현 하는 도중에 잘못된 userid 값을 request로 전송하였을 때 400 bad request가 아닌 500 Internal Server Error Exception를 에러코드로 반환하는 것을 발견했다.
Bad request에 대한 예외를 모든 에러를 처리하는 메소드에서 처리하고 있었는데 에러 코드에 대한 부분을 INTERNAL_SERVER_ERROR로 전달하고 있었다.
현재는 Bad request만 발생하는 예외 처리를 해놓았기에 위와 같이 에러 코드를 변경하여 사용하였다.
Validation 처리 도중 Dto에서 BigDecimal 타입인 amountInKrw 필드에 NotBlank를 적용했을 때 발생했다.
위 사진과 같이 BigDecimal 타입에 NotBlank를 적용하고 API를 호출하였을 때 오류가 발생하였고 NotBlank를 적용하는것이 문제인것 같았다.
NotBlank는 문자열의 null, 공백 여부 등을 검사하기 위한 어노테이션인데 BigDecimal은 숫자연산에 사용되는 타입으로 NotBlnak가 아닌 NotNull을 사용해야한다.
NotBlank -> NotNull로 변경