묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
오류 처리 흐름과 ExceptionResolver관련 질문
질문 1. 오류 처리 흐름을 아래와 같이 이해하였는데 맞는지 여부BasicErrorController를 활용한 오류 처리 흐름WAS(여기까지 전파) ← 필터 ← 서블릿 ← 인터셉터 ← 컨트롤러(예외 발생)WAS(/error) → 서블릿 → BasicErrorController에서 오류 처리 → View or JSON 반환ExceptionResolver를 활용한 오류 처리 흐름ExceptionResolver(response.sendError() 처리) ← 필터 ← 서블릿 ← 인터셉터 ← 컨트롤러(예외 발생)WAS(/error) → 서블릿 → BasicErrorController에서 오류 처리 → View or JSON 반환질문 2. ExceptionResolver 관련 설명을 아래와 같이 이해하였는데 맞는지 여부예외 발생 시 서블릿 컨테이너까지 예외가 전달되지 않고, 스프링 MVC의 ExceptionResolver 에서 예외를 처리한다. -> response.sendError() 가 아닌 예외(Exception)이 WAS에 전달되지 않는다.WAS 입장에서는 정상 처리된 것이다. -> response.sendError() 는 WAS 입장에서 정상 처리 된 것으로 인지한다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ExceptionResolver 적용 우선순위 (스프링 내부 + 사용자 커스텀 구현체)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]강의를 통해 스프링 부트가 기본으로 제공하는 ExceptionResolver 는 ExceptionHandlerExceptionResolver, ResponseStatusExceptionResolver, DefaultHandlerExceptionResolver 가 있는 것을 배웠는데요,그러면 수업 내용중 WebConfig 를 통해 등록한 아래 resolver 들까지 포함하면, 우선순위 높은 순으로 나열할 때 아래 순서가 되는 게 맞나요?1) ExceptionHandlerExceptionResolver2) ResponseStatusExceptionResolver3) DefaultHandlerExceptionResolver4) MyHandlerExceptionResolver5) UserHandlerExceptionResolver@Override public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) { resolvers.add(new MyHandlerExceptionResolver()); resolvers.add(new UserHandlerExceptionResolver()); }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ExceptionResolver ModelAndView 반환
안녕하세요스프링 MVC 2편 강의 중 'HandlerExceptionResolver 시작' 강의를 수강 중에 있는데요.강의시간 13:19분쯤에'빈 ModelAndView를 반환하면 뷰를 렌더링하지 않고, 정상흐름으로 서블릿이 리턴된다.''ModelAndView에 View, Model 등의 정보를 지정해서 반환하면 뷰를 렌더링한다.'라고 되어 있습니다. Api는 json데이터를 주고 받는 것인데 ModelAndView를 넘겨준다는게 이해가 가지 않습니다.jsonView로 담아서 모델앤뷰로 리턴하는 것도 아니고 화면으로 넘기는 모델앤뷰를 어떤의미로 사용하는 건가요? 그리고 만약 페이지 화면을 리턴하는 것이라면 여기서 빈 ModelAndView를 반환할 때는 따로 다른 뷰를 렌더링하지 않고 Exception이 발생했던 페이지 그대로 유지하나요?그리고 ModelAndView에 View, Model 등의 정보를 지정해서 반환해 뷰를 렌더링할 때에도 마찬가지로 정상흐름으로 서블릿이 리턴되는 것인가요?답변 부탁드립니다.