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等。谢谢