(Spring) HandlerInterceptor에서 발생한 Exception 처리

(Spring) HandlerInterceptor에서 발생한 Exception 처리

작성일 2023.03.22댓글 2건
    게시물 수정 , 삭제는 로그인 필요

Interceptor 에서 발생한 Exception은 ErrorController를 타지못한다고 들어서 처리방안을 모색하는 중이었습니다.

다른 컨트롤러로 포워딩 후 거기서 throw 하는 것으로 가닥을 잡고 소스 수정을 하려던 찰나, 해당 HandlerInterceptor 구현체의 데이터 확인을 위해 로그 좀 찍어보려고 lombok의 @Slf4j 어노테이션을 추가했더니 갑자기 ErrorController를 잘 탑니다...

혹시나해서 @Slf4j 어노테이션을 삭제하니까 다시 ErorController 를 못타고 500에러가 발생하네요.

아니 이게 왜 되는것인지 당황스러운데 혹시 아시는 분이 계실까요?

Spring 5.3.20, 자바8, 롬복 1.18.24 버전 사용 중입니다



profile_image 익명 작성일 -

안녕하세요~

로그 인터페이스를 구현하지 않고도 @Slf4j 어노테이션을 사용하면, 롬복이 자동으로 해당 클래스에 로그 인터페이스를 구현해 줍니다. 이 때, 롬복이 자동으로 구현해 준 로그 인터페이스는 일반적으로 logback, log4j, java.util.logging 등의 로그 라이브러리를 사용합니다.

Interceptor에서 예외가 발생했을 때, 예외 처리 로직이 제대로 동작하지 않는 경우가 종종 있습니다. 이런 경우 Interceptor에서 예외를 처리하기 전에, 해당 예외를 로깅하여 원인 파악을 돕는 경우가 있습니다. 따라서 @Slf4j 어노테이션을 추가했을 때, 롬복이 구현해 준 로그 인터페이스를 이용하여 예외를 로깅한 것이, 예외 처리 로직이 원활하게 동작하도록 해 준 것으로 추정됩니다.

하지만, 로깅을 통한 예외 처리는 예외의 원인 파악을 위한 용도로만 사용되어야 하며, 예외를 처리하는 것은 예외 처리 로직에서 담당해야 합니다. 따라서 Interceptor에서 예외를 처리할 때는, 로깅을 통해 예외를 파악한 후 적절한 처리를 해 주는 것이 좋습니다.

답변이 도움이 되셨기를요 ^^

profile_image 익명 작성일 -

혹시 익셉션 헨들러 메서드 안에 log.error 사용하십니까?

이건 @Slf4j 달아야 사용 가능함 넘이라서요.

Spring MVC JdbcTemplate 질문

... 오류가 발생한것을 확인했습니다. JdbcTemplate.queryForObject... query() 메서드를 호출하여 List로 조회결과를 반환받아 처리를...

Spring, Vue.js 질문드립니다

... error("오류가 발생했습니다."); }); }, ipFindCk... 입력시, "*" 처리 (예: 123.456.789.*) 이용하여... throws Exception{ EgovMap returnMap = new EgovMap...

spring security로 로그인

spring security로 로그인창 구현한 소스가 있습니다.... 예외처리하는 방법이 있나요?? 스프링... 따로 exception발생시키셔도 됩니다. 프레임 설정이라...

org.springframework.web.util....

... nested exception is java.lang.NullPointerException org.... 처리 해주셔야 하구요. java.lang.NullPointerException 의경우 초보자인 경우 많이 발생하는...

org.springframework.web.util....

... nested exception is java.lang.NullPointerException org.... 발생할 수 있겠죠. param 클래스의 getPassword() 도 같은 클래스가 아닌경우 동일하게 처리...