亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 ExceptionMapper 記錄 CLIENT_ERRORs

使用 ExceptionMapper 記錄 CLIENT_ERRORs

LEATH 2021-09-12 16:07:34
我正在開發一個使用 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();    }或者有沒有更好的方法來做到這一點?
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

關于 ExceptionMapper 的JAX-RS 規范

選擇異常映射提供程序以映射異常時,實現必須使用通用類型是異常的最近超級類的提供程序。

我的應用程序如何知道它需要使用 CustomExceptionMapper 而不是 Dropwizard 類?

您可以從應用程序中拋出自定義異常并為該特定異常創建一個 ExceptionMapper。

將 CLIENT_ERROR 添加到 if 條件是否足以注銷所有錯誤?

是的,4xx 和 5xx 系列具有所有錯誤響應。


查看完整回答
反對 回復 2021-09-12
  • 1 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號