かなりご無沙汰しております。
今日は、例外処理について簡単にメモっておきます。
例外とは、例えば0で割ったときとかに発生します。
コンパイルエラーで出てくるわけではなく、実行中にはじめてエラーとなるものです。
もし、例外処理を入れてなければ、実行中にそのプログラムは停止します。
以下のように使用します。
---------------------------------------
class ExampleException{
public static void main(String args[]){
try{ //例外を検出したい処理を入れておく
int i = Integer.parseInt(args[0]);
int j = Integer.parseInt(args[1]);
System.out.println("Before");
System.out.println(i/j);
System.out.println("After");
}
catch(ArithmeticException e){ //例外発生時に、そのエラーと一致すれば実行
System.out.println(e);
}
catch(Exception e){ //Eceptionを指定すれば、全ての例外をキャッチ出来る
System.out.println(e);
}
finally{ //例外発生時に必ず実行される処理
System.out.println("finally");
}
}
}
---------------------------------------
上記の例では、コマンドラインで整数値を2つ入力し、それらを割り算する、というものです。
もし、args[1]を0に指定すると、ArithmeticExceptionなので、一番目のcatchブロックに
引っ掛かります。
また、コマンドラインで整数値を何も入力しなかった場合は、ArrayIndexOutOfBoundsExceptionに
なるので、一番目のcatchブロックはスルーされ、二番目のcatchブロックでcatchされます。
そして、最後に必ずfinallyブロックを通ります。
catchブロックの検索の方法は、一番上から順に行います。
また、catch(Exception e)を指定する場合は、最後の順番にしなければコンパイルエラーになります。
もし、catchブロックに該当の例外処理をするものがなければ、finallyブロック実行後、
例外が発生します。
手抜きですが、以上です!