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
에서 상속하고 HTTP4xx
상태 코드를 캡슐화하는 데 사용됩니다. ServerErrorException
-
(JAX-RS 2.0만 해당)
javax.ws.rs.ServerErrorException
클래스는WebApplicationException
에서 상속하고 HTTP5xx
상태 코드를 캡슐화하는 데 사용됩니다. RedirectionException
-
(JAX-RS 2.0만 해당)
javax.ws.rs.RedirectionException
클래스는WebApplicationException
에서 상속하고 HTTP3xx
상태 코드를 캡슐화하는 데 사용됩니다.