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 |
코드에 대한 별칭입니다. |