try-catch-finally文は、例外処理と最終処理を指定する制御構文。
最終処理は、例外が発生したかどうかに限らず、実行する。
構文
try {
// 例外を発生させる可能性がある処理文
} catch( 例外クラス 変数 ) {
// 例外処理
} finally {
// 最終処理
}
// 例外を発生させる可能性がある処理文
} 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 (指定されたファイルが見つかりません。)
最終処理。
java.io.FileNotFoundException: sample.txt (指定されたファイルが見つかりません。)
最終処理。