JPA
[JPA] 23. Mustache를 사용한 Blog 제작 - 에러 컨트롤러 및 커스텀 익셉션 만들기
Song hyun
2024. 10. 11. 09:45
728x90
반응형
[JPA] 23. Mustache를 사용한 Blog 제작 - 에러 컨트롤러 및 커스텀 익셉션 만들기
1. Exception 클래스 만들기
-RuntimeException 클래스를 상속한 Exception 클래스 만들기
(400,401,403,404,500)
package com.tenco.blog_v1.common.errors;
public class Exception401 extends RuntimeException {
// throw new Exception400("야 너 잘못 던졌어"); <-- 사용하는 시점에 호출 모습
public Exception401(String msg){
super(msg);
}
}
- @ControllerAdvice : 전역적인 예외 처리를 담당하는 클래스임을 표시
- @ExceptionHandler : 특정 예외가 발생했을 때 실행할 메서드 지정
- ModelAndView : 뷰+데이터 동시에 반환. // 에러 페이지와 메세지 전달
2. GlobalExceptionHandler 클래스
package com.tenco.blog_v1.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// --> 화면으로 내릴 예정
public class GlobalExceptionHandler {
/**
* 400 Bad Request 예외 처리
* @param ex
* @param model
* @return
*/
@ExceptionHandler(Exception400.class)
public ModelAndView handleException400(Exception400 ex, Model model) {
ModelAndView mav = new ModelAndView("err/400");
mav.addObject("msg",ex.getMessage());
return mav;
}
}
728x90
반응형