我正在开发一个使用 Dropwizard 的应用程序,它有这个 ExceptionMapper 的实现:https : //github.com/dropwizard/dropwizard/blob/master/dropwizard-jersey/src/main/java/io/dropwizard/jersey/errors /LoggingExceptionMapper.java这个实现的问题在于,即使它同时捕获了 4** 和 5** 错误,它也只记录了 5** 错误。我需要实现 ExceptionMapper 以便根本不使用 LoggingExceptionMapper 并且我的 CustomExceptionMapper 记录 CLIENT_ERRORs 和 SERVER_ERRORs。我想知道我的应用程序如何知道它需要使用 CustomExceptionMapper 而不是 Dropwizard 类?将 CLIENT_ERROR 添加到 if 条件是否足以注销所有错误?@Overridepublic Response toResponse(E exception) { // If we're dealing with a web exception, we can service certain types of request (like // redirection or server errors) better and also propagate properties of the inner response. if (exception instanceof WebApplicationException) { final Response response = ((WebApplicationException) exception).getResponse(); Response.Status.Family family = response.getStatusInfo().getFamily(); if (family.equals(Response.Status.Family.REDIRECTION)) { return response; } if (family.equals(Response.Status.Family.SERVER_ERROR) || family.equals(Response.Status.Family.CLIENT_ERROR) { logException(exception); } return Response.fromResponse(response) .type(MediaType.APPLICATION_JSON_TYPE) .entity(new ErrorMessage(response.getStatus(), exception.getLocalizedMessage())) .build(); }或者有没有更好的方法来做到这一点?
添加回答
举报
0/150
提交
取消