メソッドが例外をスローすると、コールスタックを検索してハンドラの権利を検索しますか?その意味で、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がをスローします。どうして?
予想される出力と実際の出力を表示できますか? – byxor
'IOException'はチェック例外です。コンパイラは、 'exep.second()'への呼び出しがそれをスローしないことを知らないので、コードはコンパイルされません。 – jsheeran
@byrox私はException handlingを学習していましたが、例外がキャッチされたときに "device error"を出力したかっただけです。 – Vyshak