더북(TheBook)

10.3.1 @ExceptionHandler를 이용한 예외 처리

@ExceptionHandler는 웹 요청에 따라 컨트롤러의 요청 처리 메서드를 실행하는 동안 예외가 발생하면 이를 처리하기 위해 예외 처리 메서드에 사용하며, 형식은 다음과 같습니다.

@ExceptionHandler(value={예외 클래스1.class[,예외 클래스2.class,...]})
public String 메서드 이름() {
    ...
}
@ExceptionHandler
public String 메서드 이름(예외 클래스 exp) {
    ...
}

※ 제공 패키지: org.springframework.web.bind.annotation

@ExceptionHandler에서 value 속성은 예외 처리를 담당하는 클래스 이름을 설정하며 value 속성이나 { }를 생략할 수 있습니다. 또한 속성을 생략하고 @ExceptionHandler만 사용하려면 예외 처리 메서드의 매개변수로 예외 처리를 담당하는 클래스가 반드시 설정되어 있어야 합니다.

@ExceptionHandler에서 사용하는 속성은 다음과 같습니다.

▼ 표 10-4 @ExceptionHandler에서 사용하는 요소

요소

타입

설명

value

Class<? extends Throwable>[]

@ExceptionHandler가 선언된 메서드가 처리할 예외 클래스입니다.

@ExceptionHandler를 사용하면 @ResponseStatus 없이 발생한 예외를 처리할 수 있습니다. 또한 컨트롤러 안에 요청 처리 메서드가 발생하는 오류나 예외를 직접 구체화하여 처리할 수 있습니다. 즉, 발생한 예외 정보를 얻을 수 있고, 특정한 뷰 페이지로 이동할 수 있어 사용자가 직접 예외 처리에 응답할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.