如下情况会造成throws中的异常声明出现重复:
RuntimeException,或是它的子类如下代码所示:
void foo() throws MyException, MyException {} // Non-Compliant - should be listed once
void bar() throws Throwable, Exception {} // Non-Compliant - Exception is a subclass of Throwable
void baz() throws RuntimeException {} // Non-Compliant - RuntimeException can always be thrown
应该重构为:
void foo() throws MyException {} // Compliant
void bar() throws Throwable {} // Compliant
void baz() {} // Compliant