2017-07-07 87 views
1

我使用SonarQube进行我的代码质量分析。我使用AdroidLogic API中的AbstractJavaSequence来编写java代码。如何避免有关抽象异常的SonarQube问题?

我的很多项目类都扩展了这个类并覆盖了默认声明throws Exception的execute方法。 SonarQube分析引发了一个问题,指出该类使用了一个通用的异常而不是特定的异常。

我该如何解决这个SonarQube问题?

回答

2

只是因为你重写的方法throws Exception,这并不意味着你必须。

你可以自由地不申报,你都抛出任何异常,或反而抛出特殊例外情况:

public abstract class ParentClass { 
    abstract void doSomething() throws Exception; 
} 

这些都是有效的(当然,并不是所有的一次):

public class ChildClass extends ParentClass { 
    public void doSomething() { 
    } 

    public void doSomething() throws MyException { 
    } 

    public void doSomething() throws Exception { 
    } 
} 

你没有理由继续他们的坏习惯。

+0

您可以链接到[JLS Sec 8.4.8.3](https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.4.8.3) ),其中描述了这一点。 –