一个异常是指该方法可以抛出它,而不是一个类(SomeoneElsesLibrary).
有两种类型的异常,检查(Exception的子类型)和unchecked(RuntimeException的子类型).必须在可以抛出它的方法的签名中显式声明checked.未经检查的可以传播,而不会在方法的签名中声明,也不会被没有try / catch块处理.
通常检查是在引发异常的方法的调用者可以修复它时使用,否则不选中.
您可以通过try / catch在foo()方法中处理未经检查的异常…
public ArrayList foo(){
static ArrayList records = new ArrayList();
try{
SomeoneElsesLibrary.loadData( ... );
} catch (BazException be){ // you just handle the exception here
}
return records;
}
… 或不
public ArrayList foo(){
static ArrayList records = new ArrayList();
// if SomeoneElsesLibrary.loadData raise the BazException
// it is propagated to the caller of foo()
SomeoneElsesLibrary.loadData( ... );
return records;
}
相反,必须始终处理已检查的异常.