일단 크게 2가지가 있다.

1. @HandlerException, @ControllerAdvice를 이용하는 방안

2. BasicErrorController를 이용하는 방안

 

이 두 사용방안은 실행되는 위치가 다르다. 

1은 Interceptor, 2는 Filter

그림으로 보면,

1 에서 처리된 exception은 2까지 전파되지 않는다. 그래서 중복설정하게되면 basicErrorController가 왜 먹히지?하는 상황이 올수있다. 1과 2의 공통기능은 결국 Exception을 핸들링해주는 것이기 때문에 각 특징을 알고 써먹으면 될거같다.

 

@HandlerException와 BasicErrorController의 각각의 특징을 정리해보면,,

 

- HandlerException

 Exception을 미리 메소드별로 나눠서 처리가능하다. 반대로 말하면 BasicErrorController는 모든 exception을 메소드별로 나눠서 처리하는게 불가능(error(), errorHtml()이란 메소드로만 분리됨)

 

- BasicErrorController

Exception을 html로 주는 경우(errorHtml), 그 외의 경우로 나눌수(error) 있음

 

 

 

 

'개발 > Spring' 카테고리의 다른 글

JPA Repository의 D.I 과정  (0) 2020.06.25
Transaction & 영속성 컨텍스트 이야기  (0) 2020.06.23

+ Recent posts