java - 如何避免 Sonar 的 "preserve stack trace"违规?

标签 java

Sonar给出以下代码的严重违规错误(“保留堆栈跟踪”)。下面的方法用于抛出异常。我应该采取哪些措施来克服这种违规行为?

public void exceptionHandler(String exception) throws PhDashException {

    String exceptionMsg = exception.replaceAll("-", "_");

    ExceptionPhDash pHDashExceptionMapper = new ExceptionPhDash();
    try {
        pHDashExceptionMapper = new ObjectMapper().readValue(exceptionMsg, ExceptionPhDash.class);
    } catch (JsonParseException e) {
        LOGGER.info(e.getMessage());
    } catch (JsonMappingException e) {
        LOGGER.info(e.getMessage());
    } catch (IOException e) {
        LOGGER.info(e.getMessage());
    }
    throw new PhDashException(pHDashExceptionMapper.getMessage());
}

最佳答案

您已记录每个异常;就保存信息而言,这应该足够了,如下所示,

LOGGER.info("Unexpected Exception has occurred", e);     

或者,如果可以的话,您应该重新抛出PhDashException,因为就保留信息而言,您应该足够了

throw new PhDashException(pHDashExceptionMapper);

关于java - 如何避免 Sonar 的 "preserve stack trace"违规?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21719427/

相关文章:

java - MapReduce/Hadoop 入门

java - Camel 中 LoggingErrorHandler 的意外行为

java - 仅在需要时才在 Reactor 的 Flux 中请求下一个

java - Java 从平面文件中读取多条记录

java - 重写抽象类的@bean方法以防止bean注入(inject)

java - 如何识别 JXTreeTable 中的 TreeTableNode 是否被隐藏?

java - 在亚洲语言(韩语、日语、中文)的 Java swing (JPasswordField) 中设置密码不起作用

java - 如何从 apk 中排除特定资源文件夹

java - java中正负十进制值的正则表达式

java - 保存到文件时无法使用 AES 256 算法解密字符串