더북(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

코드에 대한 별칭입니다.

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