작성
·
363
0
이 메소드로 들어가는 경우는 Feign으로 통신했을때 에러가 발생했을때 들어가는건가요??
(4xx, 5xx 번대 에러들??)
답변 1
1
안녕하세요, 이도원입니다.
Fegin을 사용할 때 오류가 발생하면, 모든 오류를 구분없이 FeginException으로 처리합니다. 따라서 Response의 상태 맞게 오류를 분류하기 위해서 ErrorDecoder를 구현한 예외 클래스를 사용하는 것이 좋습니다.
말씀하신 것처럼 Fegin 사용시, 4xx, 5xx 오류가 발생할 경우, 위와 같은 FeignErrorDecoder에서 처리하게 됩니다.
order-service에서 아래와 같은 오류가 발생했다고 가정하면,
try {
Thread.sleep(1000);
throw new Exception("장애 발생");
} catch(InterruptedException ex) {
log.warn(ex.getMessage());
}
다음, 디버깅의 캡쳐화면에서 보시는 것처럼 처리됩니다.
감사합니다.