純粋に例外処理とは異なるけど、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節も実行されない。