我有下面的代码。我们使用的是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());
}
我试图替换catch "RuntimeException"来自:
throw new RuntimeException(e.getMessage());
抛出新的
RuntimeException(String.format("RuntimeException during processing JSON %s", e.getMessage()),e);
但是得到相同的错误。你能请人帮我一下吗?
runtimeexception:
RuntimeException及其子类是未检查的异常。未检查的异常不需要在方法或构造函数的
throws
子句中声明如果它们可以在执行方法或构造函数时抛出,并传播到方法或构造函数边界之外。
你有两个选择:
- 创建自定义异常类
- Throw已捕获
JsonProcessingException
第一个选项的代码为:
} catch (JsonProcessingException e) {
//log message somewhere
throw new MyCustomException(e.getMessage());
}
第二个选项的代码将是:
} catch (JsonProcessingException e) {
//log message somewhere
throw;
}