S1166 异常处理程序应该保留原始异常,产生假阳性。

问题描述 投票:0回答:1

在SonarQube 7.9.1上,下面的代码段抛出了一个squid:1166的异常。当我查看代码时,我觉得这个异常的处理是正确的。到底是哪里出了问题?

} catch (final Exception ex) {
  Valeur[index] = "";
}
sonarqube
1个回答
0
投票

我强烈建议你仔细看一下这段代码。问题描述:

当处理一个捕获的异常时,原始异常的信息和堆栈跟踪应该被记录或转发。

这意味着你至少应该记录你的异常,并附上某种信息,因为这可能对以后的步骤至关重要。另外,请看底部的附加参考资料,它们也提供了整洁的信息。

最简单的方法是 原木 这条信息只是在调试层面,如

} catch (final Exception ex) {
    log.debug("an exception occurred, oh no!", ex);
    Valeur[index] = "";
}

或者如果您认为完全没有必要,您总是可以将问题标记为假阳性,或者在同一行添加一个注释,以 // NOSONAR 所以同一条线上的问题将被忽略,这是我不推荐的。

} catch (final Exception ex) { // NOSONAR i do not want to log this
    Valeur[index] = "";
}
© www.soinside.com 2019 - 2024. All rights reserved.