728x90
HandlerInterceptor
HandlerInterceptor 흐름
Interceptor(preHandle) -> Handler -> Interceptor(postHandle) ->
HandlerExceptionResolver(예외 복구) -> View 렌더링 -> Interceptor(afterCompletion)
1. afterCompletion 전에 발생한 예외는 모두 DispatcherServlet으로 반환된다.
afterCompletion은 모든 처리가 끝난 후 예외 정보, 요청, 응답 정보를 모두 받는 위치에 있기 때문이다.
2. preHandle, postHandle 에서 예외가 발생할 때 @ExceptionHandler 로 핸들링할 수 있다.
3. preHandle에서 예외발생 시, postHandle은 호출되지 않는다.
4. afterCompletion은 앞에서 예외 발생 여부와 상관없이 무조건 호출된다.
Filter
Filter에서 주로 발생하는 예외는 Spring Security에서 JWT 인증 및 인가 시 발생하는
ExpiredJwtException, JwtException, IllegalArgumentException과 같은 것들이 있다.
그렇기에 Filter에서 발생하는 예외를 처리하기 위해서는 예외를 핸들링하는 Filter를 추가하는 방법이 있다.
예외 발생이 예상되는 Filter의 상위에 예외를 핸들링하는 Filter를 만들어서 Filter Chain에 추가해주면 된다.
'CS' 카테고리의 다른 글
[Spring] 의존성과 설정값을 생성자 인자로 주입해야 하는 이유 (0) | 2023.11.22 |
---|---|
[Spring] Spring Application 메서드 실행 방법 (0) | 2023.11.22 |
[Spring] Servlet (1) | 2023.11.22 |
[Spring] ServletConfig, ServletConfig (0) | 2023.11.22 |
[Spring] POJO (0) | 2023.11.20 |