考虑下面的 Java 代码片段:
public <T> T create(Class<T> clazz) throws InstantiationException, IllegalAccessException {
return clazz.newInstance();
}
这在 Eclipse(Neon.2,JDK 8)中使用 SonarLint 执行静态代码分析。它提供了重构的建议:
重构此方法以最多抛出一个已检查异常,而不是:java.lang.InstantiationException、java.lang.IllegalAccessException
此建议的基础是什么最佳实践?我知道通常对检查的异常存在一些争议,但是为什么在这种情况下在这里捕获一个并将另一个传递到堆栈而不是将它们都传递到堆栈以供其他东西处理它们会更好?