
https://velog.io/@hanblueblue/Spring-ExceptionHandler
@ControllerAdvice
public class ExceptionController {
@ExceptionHandler(NullPointerException.class)
public String handleNullPointerException(NullPointerException ex, HttpServletRequest req) {
req.setAttribute("msg", ex.getMessage());
req.setAttribute("url", req.getRequestURL());
return "exception";
}
@ExceptionHandler(IllegalArgumentException.class)
public String handleIllegalArgumentException(IllegalArgumentException ex, HttpServletRequest req) {
req.setAttribute("msg", ex.getMessage());
req.setAttribute("url", req.getRequestURL());
return "exception";
}
@ExceptionHandler(MissingPathVariableException.class)
public String handleMissingPathVariableException(MissingPathVariableException ex, HttpServletRequest req) {
req.setAttribute("msg", ex.getMessage());
req.setAttribute("url", req.getRequestURL());
return "exception";
}
@ExceptionHandler(RequestRejectedException.class)
public String handleRequestRejectedException(RequestRejectedException ex, HttpServletRequest req) {
req.setAttribute("msg", ex.getMessage());
req.setAttribute("url", req.getRequestURL());
return "exception";
}
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
public String handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException ex,
HttpServletRequest req) {
req.setAttribute("msg", ex.getMessage());
req.setAttribute("url", req.getRequestURL());
return "exception";
}
@ExceptionHandler(NoResourceFoundException.class)
public String NoResourceFoundException(NoResourceFoundException ex, HttpServletRequest req) {
req.setAttribute("msg", ex.getMessage());
req.setAttribute("url", req.getRequestURL());
return "exception";
}
}
✏️ @ControllerAdvice
- 전역적으로 예외처리를 적용하는데 사용
- 즉, 예외 처리를 중앙집중화하여 Controller Class가 비즈니스 로직에 더 집중할 수 있게 하며, 예외 처리 코드의 중복을 줄이는데 도움을 준다.
✏️ @ExceptionHandler