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