当一个方法抛出一个异常时,它会搜索调用堆栈以查找处理程序权限?从这个意义上说,为什么exep.second();?尽管我在方法second()中发现了异常。这里是我的代码:异常处理错误
public class Exep {
void first()throws IOException{
throw new IOException("device error");
}
void second()throws IOException{
try{
first();
}catch(Exception e){
System.out.println(e);
}
}
public static void main(String args[]){
Exep exep = new Exep();
exep.second();
}
}
但在加入错误消失抛出IOException异常到的main()。为什么?
您能告诉我们预期的产量和实际产量吗? – byxor
'IOException'是一个检查异常。编译器不知道你对'exep.second()'的调用不会抛出一个,所以你的代码不能编译。 – jsheeran
@byrox我正在学习异常处理,我只是想在发现异常时打印“设备错误”。 – Vyshak