0
애플리케이션에서 명시 적으로 제공하는 캐치되지 않는 예외 핸들러가없는 경우 Spring MVC가 캐치되지 않은 예외를 처리하는 방법을 이해해야한다. 포착되지 않은 예외를 발생시키는 여러 동시 요청이 Tomcat의 스레드 풀에 누출되거나 중단 될 수있는 시나리오에 영향을 미칠 수 있습니다.컨트롤러에서 발생하는 캐치되지 않는 예외를 Spring MVC가 처리하는 방법
애플리케이션에서 명시 적으로 제공하는 캐치되지 않는 예외 핸들러가없는 경우 Spring MVC가 캐치되지 않은 예외를 처리하는 방법을 이해해야한다. 포착되지 않은 예외를 발생시키는 여러 동시 요청이 Tomcat의 스레드 풀에 누출되거나 중단 될 수있는 시나리오에 영향을 미칠 수 있습니다.컨트롤러에서 발생하는 캐치되지 않는 예외를 Spring MVC가 처리하는 방법
당신은 @ControllerAdvice
(more details)를 사용할 수 있습니다 : 예를 들어
:
@ControllerAdvice
public class ControllerExceptionHandler {
@ExceptionHandler(value = AccessDeniedException.class)
public ModelAndView accessDeniedError(HttpServletResponse response) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return new ModelAndView("/403");
}
@ExceptionHandler({SQLException.class,DataAccessException.class})
public ModelAndView databaseError() {
....
}
...
}
아니, 할 수 없습니다. 500 오류가 발생합니다. –
@JBNizet 감사합니다. 그렇다면 Spring MVC가 500 응답을 가로 채고 제공 할 기본 Uncaught 예외 처리기를 제공한다는 것입니다. –
아니요 컨트롤러 또는 조언이 예외를 처리하지 않으면 DispatcherServlet의 doXxx() 메소드에 의해 처리되고 컨테이너가 500 오류 –