如何记录未经检查的异常?[已关闭]
Joshua Bloch在他的 Effective Java 中写道:
“使用 Javadoc @throws 标记来记录方法可以引发的每个未选中的异常,但不要使用 throws 关键字在方法声明中包含未选中的异常。
好吧,这听起来确实合理,但是如何找出来,我的方法可以引发什么未经检查的异常?
让我们考虑以下类:
public class FooClass {
private MyClass[] myClass;
/**
* Creates new FooClass
*/
public FooClass() {
// code omitted
// do something with myClass
}
/**
* Performs foo operation.<br />
* Whatever is calculated.
* @param index Index of a desired element
* @throws HorribleException When something horrible happens during computation
*/
public void foo(int index) {
try {
myClass[index].doComputation();
} catch (MyComputationException e) {
System.out.println("Something horrible happened during computation");
throw new HorribleException(e);
}
}
}
现在,我记录了 HorribleException,但很明显,foo 方法也可以抛出未经检查的 java.lang.ArrayIndexOutOfBoundsException。代码越复杂,就越难想到该方法可能引发的所有未经检查的异常。我的IDE在那里对我没有多大帮助,也没有任何工具。由于我不知道任何工具...
你如何处理这种情况?