首页 > 代码库 > Jersey的异常处理

Jersey的异常处理

Jersey框架为我们提供了更为通用异常处理方式。通过实现ExceptionMapper接口并使用@Provider注解将其定义为一个Provider,可以实现通用的异常的面向切面处理,而非针对某一个资源方法的异常处理。

示例:

@Provider

public class EntityNoFoundMapper implements ExceptionMapper<Jaxrs2GuideNotFoundException>{

    @Override

    public Response toResponse(final Jaxs2GuideNotFoundException ex){

       return Response.status(404).entity(ex.getMessage()).type("text/plain").build();

   }

}

EntityNotFoundMapper实现了ExceptionMapper接口,并提供了泛型类型为前面刚定义的Jaxrs2GuideNotFoundException类,当响应中发生了Jaxrs2GuideNotFoundException类型的异常时,响应流程就会被拦截并补充HTTP状态码和异常消息,以文本作为媒体格式返回给客户端。

Jersey的异常处理