try-catch-finally文

try-catch-finally文は、例外処理と最終処理を指定する制御構文。

最終処理は、例外が発生したかどうかに限らず、実行する。

構文

try {
 // 例外を発生させる可能性がある処理文
} catch( 例外クラス 変数 ) {
 // 例外処理
} finally {
 // 最終処理
}

「例外を発生させる可能性がある処理文」で、「例外クラス」の例外が発生すると、「例外処理」を実行する。

例外が発生したかどうかに限らず、「最終処理」を実行する。

catchブロックは、複数用意することもできる。

例外クラス

例外クラスは、Throwableクラスの子孫クラスとして定義されている。

例外クラスの例

FileNotFoundException
ファイルが見付からなかった場合。
例外処理指定が必須。
IllegalArgumentException
引数の指定が正しくない。
ArrayIndexOutOfBoundsException
配列のサイズを超えた場合(要素数オーバー)など。
ArithmeticException
「0」で除算しようとした場合。

変数

変数1と変数2の変数名は、変数の命名規則に則した名前であれば何でも構わないが、「e」を使うことが多い。

サンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package samplePackage;

import java.io.*;

public class SampleClass {

 public static void main( String[] args ){

  try {
   FileReader $file = new FileReader( "sample.txt" );
  } catch ( FileNotFoundException $e ) {
   System.out.println( "ファイルが読み込めませんでした。" );
   System.out.println( $e );
  } finally {
   System.out.println( "最終処理。" );
  }

 }

}

実行結果

ファイルが読み込めませんでした。
java.io.FileNotFoundException: sample.txt (指定されたファイルが見つかりません。)
最終処理。