Java SonarLint-冗余ThrowsDeclarationCheck-假阳性?

Java SonarLint-冗余ThrowsDeclarationCheck-假阳性?,java,intellij-idea,sonarqube,sonarlint,Java,Intellij Idea,Sonarqube,Sonarlint,在下面的代码中,我从squid:RedundantThrowsDeclarationCheck规则中得到一个警告,该规则位于Foo1Exception(在throws关键字后面):删除冗余'!未知符号抛出异常声明。 Foo.java: 这两种例外情况都在单独的文件中减少: Foo1Exception.java: Foo2Exception.java: 我认为这是假阳性,不是吗? 同样有趣的是:我没有直接在SonarQube(web界面)中得到这条消息,只是在IntelliJ IDEA中的Sona

在下面的代码中,我从
squid:RedundantThrowsDeclarationCheck
规则中得到一个警告,该规则位于
Foo1Exception
(在
throws
关键字后面):
删除冗余'!未知符号抛出异常声明。

Foo.java:

这两种例外情况都在单独的文件中减少:

Foo1Exception.java:

Foo2Exception.java:

我认为这是假阳性,不是吗? 同样有趣的是:我没有直接在SonarQube(web界面)中得到这条消息,只是在IntelliJ IDEA中的SonarLint插件中。 有什么想法吗


我正在使用:IntelliJ IDEA 2016.2.2;SonarLint 2.3(带工作服务器绑定);声纳QUBE 5.6;SonarqubeJava插件4.0;Java 8

这似乎已在中修复。

是否从同一服务器获取规则(可能是远程的)?或者只是使用默认规则集??您的项目设置如何?这似乎是异常类型未解决,这就是(错误地)提出问题的原因。该异常的源代码是否在同一模块中?你能分享详细信息吗?@supunvyjerathne,我已经配置了我的远程服务器并点击了“更新绑定”按钮。它正在工作。几个月以来,我一直在使用它,没有任何问题,在服务器上更改规则后,单击“更新”按钮,我在SonarLint中获得了更新的规则。这就是你的意思吗?@benzonico,我不知道你到底想知道什么,sry。我正在从事一个大型的多模块maven项目,在上面描述的测试中,我刚刚在一个模块中创建了三个新的java类(每个类都在一个单独的文件中)。如果我将
Foo
类中的两个异常类声明为内部类,它将正常工作。只有当它们在不同的文件中时,才会显示假阳性消息。@CptS您是否也使用sonarqube插件获取了新规则?如果两个插件使用不同的规则集,很明显,它们生成的问题之间可能存在不匹配。我就是这么问的。:)通常,SonarQube应该报告更多问题->所有SonarLint问题+其他一些问题,因为SonarLint在每个文件上独立运行,而SonarQube是全局的。
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;
    }

}
class Foo1Exception extends Exception {}
class Foo2Exception extends Exception {}