java jersey异常拦截器

java jersey异常拦截器,java,rest,exception,jersey,Java,Rest,Exception,Jersey,我有以下几点: @GET @Produces(MediaType.APPLICATION_JSON) @Path("/sessionlog") @Consumes(MediaType.APPLICATION_JSON) public Response getSessionLog(@HeaderParam(CLIENT_HEADER_PARAM) String clientId, @QueryParam("sessionId")

我有以下几点:

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/sessionlog")
@Consumes(MediaType.APPLICATION_JSON)
public Response getSessionLog(@HeaderParam(CLIENT_HEADER_PARAM) String clientId,
                                  @QueryParam("sessionId") Long sessionId,
                                  @QueryParam("callback") String callback) {
}
我想创建一个处理程序,截获这个端点和应用程序上所有其他端点内可能发生的任何异常。我不想抛出任何东西,在try…catch中包装代码,我只希望这个处理程序接受任何异常,理想情况下,用特殊响应进行响应。如何做到这一点

我试过这个

@Provider
public class  RestExceptionMapper implements ExceptionMapper<Exception> {

    public Response toResponse(Exception exception){

        return Response.status(Response.Status.NOT_FOUND).
                entity(new ErrorResponse(exception.getClass().toString(),
                        exception.getMessage()) ).
                build();
    }
}
@Provider
公共类RestExceptionMapper实现ExceptionMapper{
公众响应(例外){
返回Response.status(未找到Response.status.NOT_)。
实体(新的ErrorResponse(exception.getClass().toString(),
异常。getMessage()))。
build();
}
}

但我想创建try..catch…在我的端点中抛出免费代码。谢谢

我不想抛出任何东西,用try…catch包装代码,我只想让这个处理程序接受任何异常
:这是什么意思?如果您不告诉代码(通过抛出异常),代码如何知道有问题?我相信Jersey使用AOP拦截调用,为什么它不能检测到未检查的异常并抛出它?谢谢如果您在代码中抛出
WebApplicationException
,它将自动处理,但如果您不想抛出它,它的想法是捕获例如除零异常、NPE等。谢谢