1

ここに私が見ているコードがあります

 1 session s=null; 
 2 try{
 3    s= SessionCreator.createSession();
 4    System.out.println("Session Created");
 5    s.validate(); 
 6 }catch (Exception e){
 7    e.printStackTrace(); 
 8 }finally{
 9    s.close();
10 }

デバッガーは 3 行目から 9 行目にジャンプします。これはどのように可能ですか? 4、5も7も実行されませんでした。これは私を困惑させます。3 行目はベンダー コードなので、何が起こっているのかわかりません。手がかりはありますか?

4

4 に答える 4

0

ここまで読んでください。

http://docs.oracle.com/javase/tutorial/essential/exceptions/handling.html

ブロックに配置されたコードは、try失敗する可能性があります。失敗した場合 (おそらく 2 行目または 4 行目)、ブロックから抜け出してtryブロックに入る必要がありcatchます。finallyブロックはどちらの方法でも実行されます。

6行目を実行する必要があることを除いて、2行目が失敗している場合、説明は正しいように聞こえます。6 行目が実行されない場合、ブロック全体tryが成功しています。正確な出力は何ですか?

于 2013-04-12T19:16:04.097 に答える