【Java】【No.13】例外処理 | yoppyのandroidアプリ開発者になるためのブログ

yoppyのandroidアプリ開発者になるためのブログ

このブログでは、ソフト開発部に所属していながらもソフト開発の経験がほぼゼロのペーペーが、Javaの勉強やアプリ開発を経て、android携帯電話のアプリ開発者のプロを目指す共同学習型のブログです。androidやJavaなど、プログラミングに興味のある方はぜひ見て下さいね!

かなりご無沙汰しております。
今日は、例外処理について簡単にメモっておきます。

例外とは、例えば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ブロック実行後、
例外が発生します。

手抜きですが、以上です!