1 순위
메서드 별로 예외처리 (try-catch / throws)
2 순위
하나의 컨트롤러에서 발생하는 예외를 모아서 처리
-> @ExceptionHandler (메서드에 작성)3 순위
전역 (웹 애플리케이션)에서 발생하는 예외를 모아서 처리
@ControllerAdvice (클래스에 작성)
회원 컨트롤러에서 발생하는 모든 예외를 모아서 처리
@ExceptionHandler(Exception.class)
public String exceptionHandler(Exception e, Model model) {
e.printStackTrace();
model.addAttribute("errorMessage", "서비스 이용 중 문제가 발생했습니다.");
model.addAttribute("e", e);
return "common/error";
}
main.controller
@ControllerAdvice
public class ExceptionController {
// sql Exception, 등 다른 예외처리 여러개 만들기
@ExceptionHandler(Exception.class)
public String exceptionHandler(Exception e, Model model) {
e.printStackTrace();
model.addAttribute("errorMessage", "서비스 이용 중 문제가 발생했습니다.");
model.addAttribute("e", e);
return "common/error";
}
}