inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

ExceptionHandler로 처리할 필수 Exception들?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

@RestControllerAdvice와 @ExceptionHandler를 이용해서 REST API의 예외처리시 일반적으로 Handling 해줘야할 Exception들이 뭐가 있을까요? 특히 JPA쪽도 다양한 종류의 RuntimeException 상속한 Exception들이 발생하다보니, 뭘 얼마나 막아줘야할지 좀 애매? 막막한 부분들이 있는 것 같습니다. 현재는 REST API 구현시 Testcase를 통해 다양한 상황을 테스트하면서 발생하는 Exception들을 확인하면서 계속해서 ExceptionHandler를 추가하고 있는데요. Testcase 돌리다가 DataIntegrityViolationException case를 보고 ExceptionHandler 추가...이런식으로 개발하고 있는데, 상위 Exception들로 싹 잡아버려야할지... 강사님의 현업 경험을 바탕으로 기본적으로 이러한 Exception들을 handling해줘야한다고 할만한 best practice 없을까요?

  • spring
  • exceptionhandler
  • ControllerAdvice
GPK 댓글 1 좋아요 1 조회수 914

@ControllerAdvice 적용시에 404 에러의 경우

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 강의 내용중에 궁금한게 있어서 질문드립니다. @ControllerAdvice 적용시에 다른 Exception은 잘 적용되는데 URL을 잘 못 입력해서 발생하는 404(NoHandlerFoundException)의 경우에는 처리가 안되어서 구글링을 해서 아래와 같이 적용 처리 하였습니다. 이때 @EnableWebMvc를 넣지 않으면 처리가 안 되는데 @EnableWebMvc가 왜 필요한건지 궁금해서 질문 남깁니다. * 저의 가설은 - 스프링부트가 부팅될때 DispatherServlet이 필요한 설정들을 자동구성하는데 이때 자동구성된 설정에서 수동구성 설정이 추가되면서(=> setThrowExceptionIfNoHandlerFound(true)) 다시 설정이 적용되어야 하고 그때 @EnableWebMvc가 그 역할을 한다. @Configuration @RequiredArgsConstructor @EnableWebMvc public class WebConfig implements WebMvcConfigurer { private final AccessInterceptor accessInterceptor ; @Override public void addInterceptors (InterceptorRegistry registry) { registry.addInterceptor( accessInterceptor ) .order( 1 ) .addPathPatterns( "/**" ) .excludePathPatterns( "/error" ) ; } /** * 적절한 URL 을 못 찾으면 (Not Found Handler) Exception 으로 던진다 . * + EnableWebMvc * @return */ @Bean DispatcherServlet dispatcherServlet () { DispatcherServlet dispatcherServlet = new DispatcherServlet() ; dispatcherServlet.setThrowExceptionIfNoHandlerFound( true ) ; return dispatcherServlet ; } }

  • ControllerAdvice
  • spring
  • MVC
아로나 댓글 1 좋아요 1 조회수 679

안녕하세요! 질문이 있습니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요! 항상 좋은 강의 감사드립니다. @ControllerAdvice 공부하다가 궁금증이 생겨 질문 드립니다. 혹시, Controller에서 발생한 예외 말고, interceptor의 preHandle(), postHandle(), afterCompletion() 메서드 내에서 발생하는 예외도 @ControllerAdvice나 @ExceptionHandler로 잡을 수 있나요??

  • interceptor
  • ControllerAdvice
  • MVC
  • spring
ygh 댓글 3 좋아요 0 조회수 806

인기 태그

인프런 TOP Writers

주간 인기글