我正在使用 SonarQube 进行代码质量分析。我正在使用AbstractJavaSequence
来自 AdroidLogic API 的 java 编码。
我的许多项目类都扩展了这个类并覆盖了默认声明的执行方法throws Exception
。SonarQube 分析提出了一个问题,指出该类使用通用异常而不是特定异常。
我该如何解决这个 SonarQube 问题?
我正在使用 SonarQube 进行代码质量分析。我正在使用AbstractJavaSequence
来自 AdroidLogic API 的 java 编码。
我的许多项目类都扩展了这个类并覆盖了默认声明的执行方法throws Exception
。SonarQube 分析提出了一个问题,指出该类使用通用异常而不是特定异常。
我该如何解决这个 SonarQube 问题?
仅仅因为您要覆盖的方法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 {
}
}
你没有理由继续他们的不良做法。