使用checked exception会强制要求方法的调用方处理错误,可以继续传播也可以处理它们。 这就让这些异常成为了这个方法API的一部分。
为了保证调用方的可读性和复杂性,方法不应该抛出多余一个的checked exception。
如下代码:
public void delete() throws IOException, SQLException { // Non-Compliant
/* ... */
}
应该重构为:
public void delete() throws SomeApplicationLevelException { // Compliant
/* ... */
}
这个规则不会检测覆盖方法,允许抛出多个checked exception。