当前位置: 首页 > 知识库问答 >
问题:

如何改变声纳中的乌贼规则?

傅嘉悦
2023-03-14

我对SonarQube和Squid(以及CheckStyle、FindBugs和PMD)是新手。我用的是SonarQube 4.1.1。和默认的“Sonar way with FindBugs”质量配置文件来评估我的一些Java项目。

在我的分析结果中,我从SQUID那里得到了一大堆相同的关键问题:

异常处理程序应提供一些上下文并保留原始异常。当处理捕获的异常时,应记录两个强制信息,或在重新引发的异常中提供这两个信息:

  • 一些上下文,以简化问题的复制。
  • 原始消息和堆栈跟踪的异常。

在我的代码中,我使用了一个记录器,例如。

catch(Exception e) {
    LOG.error(SampleClass.class.getSimpleName() + ": " + e);
}

为什么这个规则被炒了?将记录异常。是不是,因为我用的不是'logger'而是'log'?

我有的第二个问题是:我可以在哪里看到和改变Squid规则,或者添加几个我自己的规则?根据我对FindBug、CheckStyle和PMD的理解,我可以编写自己的规则。鱿鱼也可以这样吗?

共有1个答案

浦毅
2023-03-14

我相信该规则之所以被激发,是因为您记录的是来自异常e的简单toString()消息,而不是完整的堆栈跟踪。类似于

LOG.error(SampleClass.class.getSimpleName() + ": " + e, e); 

才符合规则。

对于每个规则定义,SonarQube都有非常好的兼容/不兼容代码示例。在“问题”或“质量配置文件”中展开规则的名称以查看示例。

 类似资料:
  • 部署自定义规则(如https://github.com/sonarsource/sonar-java/blob/master/java-checks/src/main/java/org/sonar/java/checks/useLessimportcheck.java)后,启动Sonarqube4.2时,在sonar启动期间引发以下异常: 上面提到的类应该在sslr-core-1.19.2.jar

  • 在哪里可以找到用于将规则导入到Sonar的XML文件的好文档和/或模式?在http://javadocs.sonarsource.org/5.1/apidocs/org/Sonar/api/server/rule/rulesdefinitionxmlloader.html上有一些文档,但是它并不准确(例如,description标记为可选,但是Sonar如果缺少它就会失败),并且没有描述每个元素代

  • 问题内容: 为了学习,我需要在ubuntu服务器上安装sonarqube。 我按照本教程进行了安装:http : //www.naturalborncoder.com/methodology/2015/05/27/sonarqube-on- ubuntu-14-04/ (我在代理部分之前停了下来),但我无法访问127.0.0.1:9000。从日志来看,当我启动sonarcube时,elastics

  • 我尝试使用Jenkins上的java项目运行声纳分析,使用标准的maven sonar:sonar goal,并使用post STEP>>Execute SonarQube Scanner。我使用的maven目标是。 对于SonarQube扫描仪,我使用了下面的maven目标 SonarQube版本-7.7声纳扫描仪版本-3.3.0 Jenkins版本-2.164.3 Maven版本-3.6.1

  • 声纳5.0.1(应用) Sonar-Runner 2.4(gradle插件) 等级2.3 Java 8(要分析的项目) Java插件3.1(声纳插件) 有没有人有什么想法?