package com.tenco.blog_v2.common.errors;
public class Exception400 extends RuntimeException {
// throw new Exception400("야 너 잘못 던졌어"); <-- 사용하는 시점에 호출 모습
public Exception400(String msg) {
super(msg);
}
}
package com.tenco.blog_v2.common.errors;
public class Exception401 extends RuntimeException {
public Exception401(String msg) {
super(msg);
}
}
생략 …
- @ControllerAdvice: 전역적인 예외 처리를 담당하는 클래스임을 나타냅니다.
- @ExceptionHandler: 특정 예외가 발생했을 때 실행할 메서드를 지정합니다.
- ModelAndView: 뷰와 데이터를 함께 반환하는 객체로, 에러 페이지와 메시지를 전달합니다.
package com.tenco.blog_v2.common.errors;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
@ControllerAdvice // IoC 대상 ( 뷰 렌더링)
public class GlobalExceptionHandler {
/**
* 400 Bad Request 예외 처리
* @param ex
* @param model
* @return
*/
@ExceptionHandler(Exception400.class)
public ModelAndView handleException400(Exception400 ex, Model model) {
// templates/err/400.mustache
ModelAndView mav = new ModelAndView("err/400");
mav.addObject("msg", ex.getMessage());
return mav;
}
/**
* 400 Bad Request 예외 처리
* @param ex
* @param model
* @return
*/
@ExceptionHandler(Exception401.class)
public ModelAndView handleException401(Exception401 ex, Model model) {
// templates/err/400.mustache
ModelAndView mav = new ModelAndView("err/401");
mav.addObject("msg", ex.getMessage());
return mav;
}
/**
* 400 Bad Request 예외 처리
* @param ex
* @param model
* @return
*/
@ExceptionHandler(Exception403.class)
public ModelAndView handleException403(Exception403 ex, Model model) {
// templates/err/400.mustache
ModelAndView mav = new ModelAndView("err/403");
mav.addObject("msg", ex.getMessage());
return mav;
}
/**
* 400 Bad Request 예외 처리
* @param ex
* @param model
* @return
*/
@ExceptionHandler(Exception404.class)
public ModelAndView handleException404(Exception404 ex, Model model) {
// templates/err/400.mustache
ModelAndView mav = new ModelAndView("err/404");
mav.addObject("msg", ex.getMessage());
return mav;
}
/**
* 400 Bad Request 예외 처리
* @param ex
* @param model
* @return
*/
@ExceptionHandler(Exception500.class)
public ModelAndView handleException500(Exception500 ex, Model model) {
// templates/err/400.mustache
ModelAndView mav = new ModelAndView("err/500");
mav.addObject("msg", ex.getMessage());
return mav;
}
}
'Spring boot > 개념 공부' 카테고리의 다른 글
리팩토링 (0) | 2024.10.20 |
---|---|
인터셉터 만들어 보기 (0) | 2024.10.20 |
여러 페이지 만들기 (0) | 2024.10.20 |
회원 정보 수정 (0) | 2024.10.20 |
회원 가입 기능 만들기 (0) | 2024.10.20 |