try-catch文は、例外処理を指定する制御構文。
構文
try {
// 例外を発生させる可能性がある処理文
} catch( 例外クラス 変数 ) {
// 例外処理
}
// 例外を発生させる可能性がある処理文
} catch( 例外クラス 変数 ) {
// 例外処理
}
「例外を発生させる可能性がある処理文」で、「例外クラス」の例外が発生(例外をスロー)すると、「例外処理」を実行する。
例外クラス
例外クラスは、Throwableクラスの子孫クラスとして定義されている。
例外クラスの例
- FileNotFoundException
- ファイルが見付からなかった場合。
- 例外処理指定が必須。
- IllegalArgumentException
- 引数の指定が正しくない。
- ArrayIndexOutOfBoundsException
- 配列のサイズを超えた場合(要素数オーバー)など。
- ArithmeticException
- 「0」で除算しようとした場合。
変数
変数1と変数2の変数名は、変数の命名規則に則した名前であれば何でも構わないが、「e」を使うことが多い。
複数のcatch
catchブロックは、複数用意することもできる。
try {
// 例外を発生させる可能性がある処理文
} catch( 例外クラス1 変数1 ) {
// 例外処理1
} catch( 例外クラス2 変数2 ) {
// 例外処理2
}
// 例外を発生させる可能性がある処理文
} catch( 例外クラス1 変数1 ) {
// 例外処理1
} catch( 例外クラス2 変数2 ) {
// 例外処理2
}
「例外を発生させる可能性がある処理文」で、「例外クラス1」の例外が発生すると、「例外処理1」を実行する。
「例外を発生させる可能性がある処理文」で、「例外クラス2」の例外が発生すると、「例外処理2」を実行する。
サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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 ); } } } |
実行結果
ファイルが読み込めませんでした。
java.io.FileNotFoundException: sample.txt (指定されたファイルが見つかりません。)
java.io.FileNotFoundException: sample.txt (指定されたファイルが見つかりません。)