2
我正在使用Sonar(4.5.4)来测试代码质量。对于此示例代码:嵌套Case声明中的声纳问题
switch (operationType) {
case A:
return doSomething1();
case B:
return doSomething2();
case C:
return doSomething3();
case D:
return doSomething4();
case E:
switch (X) {
case X1:
return doSomething5();
case X2:
return doSomething6();
default:
return doSomething7();
}
default:
return doSomething8();
}
我得到这个为关键问题:
末该开关的情况下与无条件的中断,继续,恢复或throw语句。
的情况下é & X1。我对每种情况都有一个回复声明(另外,我包含默认)。
这个问题的原因是什么?
你的代码没问题。这种情况可能只是声纳不能理解的代码模式列表中的另一种情况。我最喜欢的是它无法检测线路/分支的覆盖范围:Sonar认为捕获中有8个分支,你永远无法覆盖。 – Bohemian
请看下面的链接,它可能会帮助你 https://jira.sonarsource.com/browse/SONARJAVA-415 http://sonarqube-archive.15.x6.nabble.com/RE-Sonar -3-7-1-Java-Ecosystem-1-3-to-1-4-Complement-td5017817.html – Zia
@Bohemian请注意,这与SonarQube无关,但这与JaCoCo有关,请参阅https ://github.com/jacoco/jacoco/issues/82和https://github.com/jacoco/jacoco/issues/15 – benzonico