有人可以给我一个为什么在这里忽略new Exception()
的原因吗?
void bar() throws IOException { //no Exception declared, compilator is ok about that. Why?
try{
throw new EOFException();
}
catch(EOFException eofe){
throw new Exception();
}
finally{
throw new IOException();
}
}
答案 0 :(得分:5)
无论try块是否引发异常(无论是否具有return语句),始终执行finally块。
因此,finally块引发的异常-IOException
-是您的方法抛出的唯一异常,并且无论try块的内容如何,它总是被抛出。因此,您的方法只需声明为throws IOException
。