今回から例外処理についてです。
■例外(Exception)とは
例外(Exception)とは、簡単に言ってしまえば実行時エラーのことです。
ただし、コンパイルエラーとは別のものです。
コンパイルエラーは実行する前に出るエラー、例外は実行した際に出るエラーとなります。
そのため例外が発生してしまうとプログラムが途中で動かなくなってしまいます。
そこで例外が発生した場合の処理を予め書いておくことにより、プログラムが予期せず終了してしまうことを防ぐことができます。
今回はまず例外とは何かということについて説明していきます。
■SampleException_01.java
ではどのような場合に例外が発生するのかサンプルで確かめて見ます。
public class SampleException_01 { public static void main(String[] args) { int[] array = { 0, 1, 2 }; System.out.println(array[3]); } }
■実行結果
■解説
ご覧の通りコンパイルは問題なく通ります。
しかし実行してみたら「ArrayIndexOutOfBoundsException」という例外が発生してしまいました。
これは配列の要素外にアクセスしようとすると発生する例外です。
要素は3つなのでインデックスは[0], [1], [2]の3つですね。
したがってarray[3]なんて存在しません。
しかしarray[int]という文法は間違っていません。
このような場合にコンパイルエラーではなく例外が発生します。
■SampleException_02.java
ではもう一つサンプルです。
public class SampleException_02 { public static void main(String[] args) { System.out.println(10 / 0); } }
■実行結果
■解説
今度は「ArithmeticException」という例外が発生しました。
これは0で除算した場合に発生します。
しかしint / intと文法的には正しいのでコンパイルエラーは出ません。
■まとめ
- 例外とはプログラム実行時に発生す予期せぬ現象。
- 例外が発生するとプログラムが途中でも終了してしまう。
- 例外が発生した場合の処理を記述することで、異常終了を防ぐことができる。