try-catch
catchとは
catchとは普通にボールをキャッチすると同じ意味です。
Javaで使うcatchという予約語は、ボールをキャッチするのではなく、
例外をキャッチする機能を持ちます。
try - catch
キャッチボールは、
必ずボールを投げる者が居て、キャッチする人が居ます。
これをJavaの例外処理に置き換えると、
例外がボールで、それが投げられた時処理するのが、
キャッチをする人となります。
Javaでは try-catchは必ず対の関係にあります。
例外処理の流れ
例外処理が起こりそうな場所があれば、
その部分をtry-catch構文で囲ってあげます。
例えば、配列以上の不正アクセスが発生する可能性がある場合は、
ArrayIndexOutOfBoundsExceptionという例外をキャッチする処理を書きます。
次のプログラムは、発生しうる全ての例外をキャッチした場合、
そのキャッチした例外メッセージを表示します。
public class Main {
public static void main(String args[]){
int g[] = {0};
try {
System.out.println("try");
//配列以外への違反アクセス
System.out.println(g[3]);
}catch(Exception a){
System.out.println("catch");
//例外メッセージを表示
System.out.println(a);
}
}
}
//catch
//java.lang.ArrayIndexOutOfBoundsException:3
//キャッチ
//java.lang.に定義されている、配列インデックス以外の例外
が発生したという意味です。
他にも例外を限定してキャッチする方法があります。
Exceptionをcatchの引数にすると全ての例外処理をキャッチできます。
中には限定したキャッチをして、それぞれに合わせた対応の処理を
行うことも可能です。
その場合、
try {
例外発生
}catch (キャッチする例外){
キャッチした例外に対する処理
}catch (キャッチする例外){
キャッチした例外に対する処理
}catch (キャッチする例外){
キャッチした例外に対する処理
}
このように発生した例外に合わせた処理を
列挙して記述することが可能です。
この例外のキャッチの仕方や、
対処については、thraw構文の説明で紹介したいと思います。
ここでは、全ての例外はExceptionでキャッチして、
流すということだけ覚えてください。