例外とは

広告

ここでは例外とは何かについて簡単に確認しておきます。Javaでプログラムを作成した場合、コンパイルの時点でエラーが発生する場合と実行中にエラーが発生する場合があります。

コンパイルの時点でエラーが発生するのはプログラムが文法的に間違っている場合で、構文の使い方を間違えたとか変数名の記述ミスなどがあります。

例えば次のプログラムをコンパイルしてみます。

JSample1_1.java

class JSample1_1{
  public static void main(String args[]){
    int n = 10;

    if (n == 10{
      System.out.println("10です");
    }
  }
}

コンパイルを行うと次のようにコンパイルエラーが発生します。

p1-1

if文の条件式の後の「)」が記述されていないためです。このようにコンパイルの時点でエラーとなる場合は書き間違いなどの記述ミスやint型の変数にStringクラスのオブジェクトを代入しようとするなど文法上の間違いがあった場合となります。

続いて実行時のエラーです。実行時に発生するエラーは簡単に言えば予期せぬエラーです。例えばユーザーが入力した値を数値に変換して出力するプログラムであった場合、数値が入力されることを前提にプログラムが記述されているにも関わらず数値以外の文字が入力された時に実行時のエラーが発生します。

他にもファイルを開いて何か書き込みをしようとしたが、そのファイルが見つからなかった場合などにも実行時のエラーが発生します。ファイルが実際にあるかどうかはコンパイルの時点では判断することができません。ファイルを開こうとするプログラムの記述の方法が間違っていなければコンパイルは成功しプログラムは作成されますが、実際に実行してみたらファイルが見つからなくてエラーが発生するということです。

下記は実行時エラーとなるプログラムのサンプルです。

JSample1_2.java

class JSample1_2{
  public static void main(String args[]){
    int n[] = {18, 29, 36};

    System.out.println("開始します");

    for (int i = 0; i < 4; i++){
      System.out.println(n[i]);
    }

    System.out.println("終了しました");
  }
}

このプログラムはコンパイルは無事に成功します。

p1-2

ただプログラムを実際に実行してみると、途中でエラーが発生します。

p1-3

今回のプログラムは配列の要素が3つしかないのに4つ目の要素を参照しようとしたためにエラーが発生しています。Javaではこのようにプログラムの実行中にエラーが発生することを例外が発生したといいます。

先ほどのサンプルの実行結果を見て頂くと分かりますが例外が発生するとプログラムはそこで終了してしまいそれ以降のプログラムを実行しません。急にプログラムが終了してしまうと困ってしまう場合もありますし、プログラムを実行している人にエラーメッセージをそのまま表示したくない場合もあります。そこで例外が発生した時に単にプログラムを終了させるのではなく指定した動作をさせるための仕組みが用意されています。それが例外処理と呼ばれるものです。

例外が発生するのは様々な原因があります。例外処理では例外が起こった原因毎に異なる処理ができる仕組みが用意されています。次のページにて例外処理の基本的な記述方法を確認します。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)