JsonProcessingException 中的 catch 块中的 SonarQube 错误

SonarQube error in catch block in JsonProcessingException

我有以下代码。我们使用的是 sonar 8.9 版本和 jdk 11。SonarQube 总是抛出一个严重的问题 “定义并抛出专用异常而不是使用通用异常”

try {
    String stringPayload = jsonMapper.writeValueAsString(payload);
    log.info("Feedzai request: {}"<some object>);
    input.setPayload(new StringEntity(stringPayload, APPLICATION_JSON));
} catch (JsonProcessingException e) {
    throw new RuntimeException(e.getMessage());
}

我试图从以下位置替换捕获“RuntimeException”:

throw new RuntimeException(e.getMessage()); 

抛出新的

RuntimeException(String.format("RuntimeException during processing JSON %s", e.getMessage()),e);

但得到同样的错误。 你能请谁帮帮我吗。

RuntimeExteption的定义:

RuntimeException and its subclasses are unchecked exceptions. Unchecked exceptions do not need to be declared in a method or constructor's throws clause if they can be thrown by the execution of the method or constructor and propagate outside the method or constructor boundary.

你有两个选择:

  1. 创建自定义异常 class
  2. 投掷已被抓到JsonProcessingException

第一个选项的代码为:

} catch (JsonProcessingException e) {
    //log message somewhere
    throw new MyCustomException(e.getMessage());
}

第二个选项的代码为:

} catch (JsonProcessingException e) {
    //log message somewhere
    throw;
}