純粋に例外処理とは異なるけど、finally節について。
finally節は必ず実行される。
try節にreturn,break,continueなどがあっても。
【コーディング】
package sample4;
public class TestException4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 0; i < 3; i++){
System.out.println("for : " + i + " start...." );
try {
System.out.println("try : " + i + " start.....");
if( i == 1 )continue;
System.out.println("try : " + i + " end.....");
} finally{
System.out.println("finally : " + i );
}
System.out.println("for : " + i + " end.....");
}
}
}
【実行結果】
for : 0 start....
try : 0 start.....
try : 0 end.....
finally : 0
for : 0 end.....
for : 1 start....
try : 1 start.....
finally : 1
for : 2 start....
try : 2 start.....
try : 2 end.....
finally : 2fds
for : 2 end.....
下の例の場合もretrunで戻る前にfinally節が実行される。
try{
~
if(条件) return;
} finally{
}
唯一、try節でSystem.exit()を実行した場合だけは、try節も実行されない。