當一個方法拋出一個異常時,它會搜索調用堆棧以查找處理程序權限?從這個意義上說,爲什麼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