아래의 방식들은 예외가 발생했을 시, 예외를 처리하지 않고 예외가 발생한 메서드를 호출한 곳에서 에러 처리를 할 수 있게 전가하는 상황일때 주로 사용한다.
(혹은 에러를 한 곳으로 모을때)
예외 상황을 파악해서 문제를 해결하는 방식은 try/catch가 효율적이다.
스프링 부트의 예외 처리 방식은 크게 2가지가 존재
@ControllerAdvice 대신 @RestControllerAdvice를 사용하면 결과값을 JSON 형태로 반환할 수 있습니다.
@RestControllerAdvice(basePackages = "com.package.Project")
@ExceptionHandler(00Exception.class)
자식클래스(NullPointerException)가 부모클래스(Exception)보다 높은 우선순위를 가진다.
전역 설정(@ControllerAdvice)보다 지역 설정(Controller)으로 정의한 Handler가 우선순위를 가짐
HttpStatus(int value, Series series, String reasonPharse){ //Enum Class
this.value = value; //error code
this.series = series;
this.reasonPhrase = reasonPhrase; //error code
}