더북(TheBook)

10.2.2 @ResponseStatus를 이용한 예외 처리

@ResponseStatus는 웹 요청을 할 때 예외가 발생하면 지정된 HTTP 상태 코드를 웹 브라우저에 전달합니다. 이런 기능은 ResponseStatusExceptionResolver 클래스가 제공하며, 이 클래스는 디스패처 서블릿에 기본적으로 등록되어 있어 별도로 구성할 필요 없습니다.

형식은 다음과 같습니다.

// 예외 메서드에 사용할 때
@ResponseStatus(value=HttpStatus.상태 코드, reason="오류 설명")
@RequestMapping(...)
public String 메서드 이름() {
    ...
}
// 예외 클래스에 사용할 때
@ResponseStatus(value=HttpStatus.상태 코드, reason="오류 설명")
public class 클래스 이름 extends RuntimeException {
    ...
}

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

@ResponseStatus에서 value 속성은 HttpStatus에 정의되어 있는 HTTP 상태 코드를 지정하고, reason 속성으로 자세한 설명을 설정할 수도 있습니다. @ResponseStatus에서 사용하는 속성은 다음과 같습니다.

▼ 표 10-3 @ResponseStatus에서 사용하는 속성

요소

타입

설명

code

HttpStatus

응답에 사용되는 상태 코드입니다.

reason

String

응답에 사용되는 이유를 설명합니다.

value

HttpStatus

코드에 대한 별칭입니다.