api의 할달량을 전부 쓰면 429 Too Many Requests 에러를 받는데
httpclient exception이외에 에러코드는 받지 못하나요 ?
RestTemplate restTemplate = new RestTemplate();
ResponseEntity result = restTemplate.exchange(API_URL, HttpMethod.GET, new HttpEntity(headers),
String.class);
System.out.println(result);
result 생성구문에서 에러가 발생하는데 try catch문이 아닌 error code롤 보고싶습니다(api 에러코드를 준다고 알고있는데 429는 없는건가요 ??)
스프링에서는 HTTP 요청에 대한 정상적인 응답이 아닌 경우에는 모두 오류로 취급한다고 합니다.
그래서 try catch가 사용되는 것이 일반적입니다.
다른 방법은 예외 처리 핸들러를 구현하여 지정하는 방식입니다.
https://stackoverflow.com/questions/38093388/spring-resttemplate-exception-handling
위 스택 오버플로에 따르면,
ResponseErrorHandler 클래스를 확장하는 핸들러(MyErrorHandler)를 하나 만들고 그것을
restTemplate.setErrorHandler(new MyErrorHandler());
해주고 구현한 핸들러에서 받은 response 객체를 확인하여 코드를 얻는 방식 하나와,
try {
restTemplate.exchange(...);
} catch (HttpStatusCodeException exception) {
int statusCode = exception.getStatusCode().value();
...
}
try catch 문에서 HttpStatusCodeException 클래스 인스턴스인 exception으로부터 코드를 얻는 방식이 있다고 합니다.
확인해 보세요.