50장. 예외 처리

초록

가능한 경우 리소스 메서드에서 catch한 예외로 인해 요청 소비자에게 유용한 오류가 반환되어야 합니다. JAX-RS 리소스 메서드는 WebApplicationException 예외를 throw할 수 있습니다. 적절한 응답에 예외를 매핑하도록 ExceptionMapper<E> 구현을 제공할 수도 있습니다.

50.1. JAX-RS 예외 클래스 개요

50.1.1. 개요

JAX-RS 1.x에서 사용 가능한 유일한 예외 클래스는 WebApplicationException 입니다. 그러나 JAX-WS 2.0부터 많은 추가 JAX-RS 예외 클래스가 정의되어 있습니다.

50.1.2. JAX-RS 런타임 수준 예외

다음 예외는 JAX-RS 런타임에서만 throw되어야 합니다(즉, 애플리케이션 수준 코드에서 이러한 예외를 throw해서는 됩니다).

ProcessingException
(JAX-RS 2.0만 해당) 요청 처리 중 또는 JAX-RS 런타임의 응답 처리 중에 javax.ws.rs.ProcessingException 을 throw할 수 있습니다. 예를 들어 필터 체인 또는 인터셉터 체인 처리의 오류로 인해 이 오류가 발생할 수 있습니다.
ResponseProcessingException
(JAX-RS 2.0만 해당) javax.ws.rs.client.ResponseProcessingException 은 클라이언트 의 JAX-RS 런타임에서 오류가 발생할 때 발생할 수 있는 ProcessingException 의 하위 클래스입니다.

50.1.3. JAX-RS 애플리케이션 수준 예외

다음 예외는 애플리케이션 수준 코드에서 throw(및 catch)되도록 설계되었습니다.The following exceptions are intended to be thrown (and caught) in your application level code:

WebApplicationException
javax.ws.rs.WebApplicationException 은 서버 측의 애플리케이션 코드에서 throw될 수 있는 일반적인 애플리케이션 수준 JAX-RS 예외입니다. 이 예외 유형은 HTTP 상태 코드, 오류 메시지 및 (선택적으로) 응답 메시지를 캡슐화할 수 있습니다. 자세한 내용은 50.2절. “WebApplicationException 예외를 보고서에 사용”의 내용을 참조하십시오.
ClientErrorException
(JAX-RS 2.0만 해당) javax.ws.rs.ClientErrorException 클래스는 WebApplicationException 에서 상속하고 HTTP 4xx 상태 코드를 캡슐화하는 데 사용됩니다.
ServerErrorException
(JAX-RS 2.0만 해당) javax.ws.rs.ServerErrorException 클래스는 WebApplicationException 에서 상속하고 HTTP 5xx 상태 코드를 캡슐화하는 데 사용됩니다.
RedirectionException
(JAX-RS 2.0만 해당) javax.ws.rs.RedirectionException 클래스는 WebApplicationException 에서 상속하고 HTTP 3xx 상태 코드를 캡슐화하는 데 사용됩니다.