关闭某些代码的声纳

2022-08-31 05:41:35

是否可以关闭特定代码块的声纳(www.sonarsource.org)测量,这是不想测量的?

一个例子是 Findbugs 输出的“保留堆栈跟踪”警告。离开服务器时,如果客户端不知道该异常(例如,因为客户端没有包含该异常的JAR),则我可能只想将消息传递回客户端,不包括我刚刚捕获的实际异常。


答案 1

您可以使用抑制警告对类或方法进行批注

@java.lang.SuppressWarnings("squid:S00112")

squid:S00112 在本例中是声纳问题 ID。您可以在声纳 UI 中找到此 ID。转到问题明细。查找要禁止显示警告的问题。在代码的红色问题框中,有一个规则链接,其中包含给定问题的定义。单击该按钮后,您将在页面顶部看到ID。


答案 2

我建议您尝试使用 禁止显示特定警告。@SuppressWarnings("squid:S2078")

要抑制多个警告,您可以像这样操作@SuppressWarnings({"squid:S2078", "squid:S2076"})

还有一个注释告诉SonarQube忽略特定行的所有错误。//NOSONAR

最后,如果您具有用户界面的适当权限,则可以直接从界面发出标志作为误报。

我建议抑制特定警告的原因是,更好的做法是阻止特定问题,而不是使用声纳问题,并冒着Sonar问题意外蔓延的风险。//NOSONAR

您可以在常见问题解答中阅读有关此内容的更多信息

编辑:6/30/16 SonarQube现在被称为SonarLint

如果您想知道如何找到鱿鱼编号。只需单击声纳消息(例如),声纳问题就会扩展。Remove this method to simply inherit it.

在左下角,它将有鱿鱼编号(例如。 可维护性>可理解性)squid:S1185

因此,您可以通过以下方式抑制它@SuppressWarnings("squid:S1185")


推荐