try catch finally

例外処理に関してtry catchブロックのほかにもうひとつ大切なブロックがあります。
これが、finallyブロックと呼ばれるものです。

finallyブロックはtryブロック内で例外が発生の有無に関わらず必ず実行されます。

finallyブロックには必ず実行させたいコードを書きます。
しかし、finallyブロックで唯一実行されないときがあります。
それは、System.exitメソッドがcatchブロック内でアプリケーションを終了させたときだけです。

サンプルプログラム(Sample64.java)

class Sample64{
    public static void main(String args[]){
       int i[] = new int[3];
  try{
      i[4] = 10;
      System.out.println("例外は発生していません");

  }catch(ArrayIndexOutOfBoundsException e){

     System.out.println("例外発生");

}finally{
System.out.println("例外の有無に関わらず実行されます");
}
} }
プログラムをコピーする場合すべて選択をクリックしてください。

サンプルプログラム(Sample64_1.java )

class Sample64_1{
    public static void main(String args[]){
   int i[] = new int[3];
  try{
      i[2] = 10;
      System.out.println("例外は発生していません");

  }catch(ArrayIndexOutOfBoundsException e){

     System.out.println("例外発生");

}finally{
System.out.println("例外の有無に関わらず実行されます");
}

} }

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

上記2つのプログラムをコンパイ・実行します

Sample64 も Sample64_1 もfinallyブロックが実行されているのがわかります。
このように例外処理に関わらず必ず実行されるのです。

ページのトップへ戻る