SonarQube Nitpicking? - “右大括号和下一个”其他“,”catch“和”finally“关键字应位于同一行”

时间:2015-06-08 09:18:18

标签: java sonarqube

我运行流行的Java代码质量工具SonarQube,并观察其建议。我看到它报告了下面的“严重”严重性问题,

enter image description here

您可以看到该规则的合规和不合规代码,如下所示,

  if(something) {
    executeTask();
  } else if (somethingElse) {          // **Compliant**
    doSomethingElse();
  }
  else {                               // **Noncompliant**
     generateError();
  }

我觉得,这是开发人员的自由裁量权,至少不应该以“严重”严重程度报告该问题。 (“次要”或“信息”严重程度可以通过适当的理由进行。)

你对这个推荐的原因有什么理由吗?

其次,对于在相当长的时间内处理代码质量工具的受众的问题,总体来说我需要使用代码质量工具有多严肃?

(我发现了一些文章herehere,它们实际上赞同了“不合规”的写作方式if-else或try-catch-finally。)

2 个答案:

答案 0 :(得分:3)

您的代码被视为不合规并不奇怪 - 它违反了Java Code Conventions。是否遵守代码约定,但考虑到以通用样式编写的代码更容易理解的事实。

根据Java Code Conventions if-else语句应具有以下形式:

Context

try-catch语句应具有以下格式:

if (condition) {
    statements;
} else {
    statements;
}

答案 1 :(得分:3)

如果您不想使用此类代码约定,您可以从质量配置文件中禁用该规则 - 甚至更改其严重性。默认" SonarQube Way"质量概况只是广泛接受的最佳实践的标志,但最终您有责任根据您的需求进行调整。