2016-08-18 74 views
2

在下面的代碼我從squid:RedundantThrowsDeclarationCheck規則的Foo1Exception警告(在throws關鍵字後面):Remove the redundant '!unknownSymbol!' thrown exception declaration(s).SonarLint - RedundantThrowsDeclarationCheck - 誤報?

Foo.java:

public class Foo { 

    public static boolean bar(final String test) throws Foo1Exception, Foo2Exception { 

     if (test.startsWith("a")) { 
      throw new Foo1Exception(); 
     } else if (test.startsWith("b")) { 
      throw new Foo2Exception(); 
     } else if (test.startsWith("c")) { 
      return true; 
     } 

     return false; 
    } 

} 

兩個例外單獨的文件decrlared:

Foo1Exception.java:

class Foo1Exception extends Exception {} 

Foo2Exception.java:

class Foo2Exception extends Exception {} 

我認爲這是一個假陽性,是不是? 也有趣:我不直接在SonarQube(網絡界面)中的IntelliJ IDEA中的SonarLint插件中獲取此消息。 任何想法?

我在用:IntelliJ IDEA 2016.2.2; SonarLint 2.3(帶有工作服務器綁定); SonarQube 5.6; SonarQube Java插件4.0; Java 8

+0

你是否從相同的服務器(可能是遠程)獲取規則?或者只是使用默認規則集? –

+0

您的項目如何準確設置?這似乎是異常的類型沒有解決,這就是(錯誤地)提出問題的原因。該異常的源代碼是否在同一個模塊中?你能分享一下這方面的細節嗎? – benzonico

+0

@SweetWithrathne,我配置了我的遠程服務器並點擊了「更新綁定」按鈕。它正在工作。我在幾個月後沒有任何問題地使用它,並且在更改服務器上的規則之後,單擊「更新」按鈕我在SonarLint中獲得了更新後的規則。你是這個意思嗎? –

回答