java - JsonProcessingException 中的 catch 块中的 SonarQube 错误
问题描述
我有以下代码。我们正在使用声纳 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());
}
我试图从以下位置替换 catch“RuntimeException”:
throw new RuntimeException(e.getMessage());
扔新的
RuntimeException(String.format("RuntimeException during processing JSON %s", e.getMessage()),e);
但得到同样的错误。你能请人帮我吗。
解决方案
RuntimeExteption的定义:
RuntimeException 及其子类是未经检查的异常。如果未经检查的异常可以通过方法或构造函数的执行抛出并传播到方法或构造函数边界之外,则不需要在方法或构造函数的
throws
子句中声明它们。
你有两个选择:
- 创建自定义异常类
- 投掷已经被抓住
JsonProcessingException
第一个选项的代码将是:
} catch (JsonProcessingException e) {
//log message somewhere
throw new MyCustomException(e.getMessage());
}
第二个选项的代码将是:
} catch (JsonProcessingException e) {
//log message somewhere
throw;
}
推荐阅读
- c# - 使用 Cookie 在 Web API 中配置域
- python - 如何更新代码以显示随机游走?
- excel - 运行时错误 53 file not found for some files in directory
- charts - 谷歌图表没有占用 100% 的空间
- java - android.view.accessibility.AccessibilityNodeInfo.setText 致命异常:java.lang.IndexOutOfBoundsException
- python - Ray 集群配置 file_mounts 部分不允许工作节点启动
- ruby-on-rails - 如何在开发模式下访问加密凭据?
- python - 如何将 FFMPEG 导出到我的 Python 程序中?
- tensorboard - TensorBoard:如何添加电子邮件链接?
- javascript - 如何从此函数中获取 downloadURL?