backend

Jersey의 Exception Handling

버리야 2009. 6. 5. 14:02
반응형

Jersey에서는 WebApplicationException 클래스를 이용하여 Exception Handling한다.

WebApplicationException을 잡아야 하고, 예외를 Response로 매핑한다.
예외를 위한 response가 null이 아니면 응답을 생성, null이면 서버 오류 응답을 생성
런타임 예외나 미리감지되는 예외(checked exception) 기호에 따라 사용
미리 감지되지 않는 예외나 오류는 컨테이너 안쪽까지 전파가 되도록 예외를 다시 던져야(re-thrown) 한다.
미리 감지되는 예외나 throwable 은 직접 예외를 던지지 말고, 서블릿인 경우은  ServletException으로, JAX-WS Provider 기반인 경우는 WebServiceException으로 예외를 감싸서 던져야 한다.


 public SparklinesResource(
          @QueryParam("d") IntegerList data,
          @DefaultValue("0,100") @QueryParam("limits") Interval limits) {
      if (data == null)
          throw new WebApplicationException(400);
  
      this.data = data;  
      this.limits = limits;
  
      if (!limits.contains(data))
          throw new WebApplicationException(400);


* 참고 : 이 예제는 Joe Gregorio의  Sparklines service and python implementation을 보고 영감을 받고 Paul Sandoz 아저씨가 만든 Sparklines 예제중의 일부이다.



반응형

'backend' 카테고리의 다른 글

[Jersey] WebApplicationException and Mapping Exception to Responses  (0) 2009.07.30
[Jersey] Building Responses  (4) 2009.07.21
[Jersey] Representation and Java Types  (0) 2009.07.16
Jersey의 JSON Support  (2) 2009.06.08
Jersey의 Return Type  (0) 2009.06.04
Jersey의 MessageBodyReader/Writer  (1) 2009.06.03
JAX-RS @Produces와 @Consumes  (2) 2009.06.02
JAX-RS의 구성  (0) 2009.06.01