반응형
3.2 버전부터 추가된 기능으로써 이 기능을 사용하면 지정된 패키지 아래의 Exception은 모두 이쪽을 거치게 됩니다.
// 아래처럼 패키지를 지정하면 해당 패키지 아래에서 발생하는 Exception만 캐치한다. @ControllerAdvice(basePackages = {"com.test.controller.web"}) public class TestExceptionHandler{ @ExceptionHandler(Exception.class) // 이런식으로 익셉션 종류별로 처리를 둘 수 있다. public void handleException(Exception e){ System.out.println("exception ..."); } @ExceptionHandler(RuntimeException.class) // 이런식으로 익셉션 종류별로 처리를 둘 수 있다. public ModelAndView handleRuntimeException(RuntimeException e){ ModelAndView view = new ModelAndView("RuntimeExceptionHandler"); System.out.println("RuntimeException ... "); view.addObject("errCd", "999"); return view; } }
클래스에 @ControllerAdvice를 선언해 주고 각 메서드 마다 @ExceptionHandler를 달아 놓은 상태에서 어떤 익셉션을 처리할 것인지 설정해주면 된다.
이후 핸들범위에 포함되는 패키지에서 개발자가 익셉션을 담아 던지면 해당 메세지를 각 핸들러 메소드에서 확인이 가능하다.
리턴값은 void 뿐 아니라 ModelAndView 까지 다양하게 리턴할 수 있다.
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
[spring] form에서 submit으로 날려도 한글이 깨지는 것 설정. (0) | 2017.05.10 |
---|---|
angularjs로 modal (ui-bootstrap)을 띄우고 값 주고받기. (1) | 2017.05.04 |
[Spring] Mybatis 사용하기 (mapper를 interface를 이용하여 호출) (1) | 2017.04.20 |
[Spring] Mybatis 사용하기 (mapper의 id를 직접 호출) (0) | 2017.04.20 |
[Spring] Mybatis 설정하기 (기본설정) (0) | 2017.04.20 |
댓글