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
반응형