try-catch文

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

構文

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

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

例外クラス

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

例外クラスの例

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

変数

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

複数のcatch

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

try {
 // 例外を発生させる可能性がある処理文
} 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 (指定されたファイルが見つかりません。)