Written on
·
377
0
스프링 부트가 기본으로 제공하는 ExceptionResolver 는 다음과 같다. HandlerExceptionResolverComposite 에 다음 순서로 등록
1. ExceptionHandlerExceptionResolver
2. ResponseStatusExceptionResolver
3. DefaultHandlerExceptionResolver 우선 순위가 가장 낮다.
이 내용에서 우리가 직접등록한 MyHandlerExceptionResolver는 우선순위가 어떻게되나요 ?
스프링부트가 기본적으로 제공하는 ExceptionResolver와 우리가 직접 등록한 ExceptionResolver가 같은 예외를 처리하는 로직을 담고 있다면 어떤것에서 우선순위가 있어 처리되는지 궁금합니다.
Answer 1
2
안녕하세요. ehdgur4814님, 공식 서포터즈 David입니다.
custom HandlerExceptionResolver를 등록하면 HandlerExceptionResolverComposite 제일 마지막에 추가됩니다. 에러 발생시 Composite에 등록된 순서대로 해당 예외를 처리할 수 있는지 확인하기 때문에 동일한 예외의 경우 우선순위가 높은 resolver를 통해 처리됩니다.
우선순위를 변경하려면 resolver 등록시 인덱스를 추가할 수 있으니 참고해주세요.
감사합니다.