Previous | Next | Trail Map | Writing Java Programs | 例外を使用したエラー処理


throw 文

すべての Java メソッドは、例外をあげるために throw 文を使用する。throw 文はひとつの引数を必要とする。この引数はthrowableオブジェクトである。 Java システムでは、throwableオブジェクトは、 Throwable で定義した java.lang クラスのサブクラスのインスタンスである。throw 文 の例を示す。

throw someThrowableObject;

throwableでないオブジェクトをあげようと試みると、コンパイラはプログラムのコンパイルを拒否して、次に示すエラーメッセージに類似したエラーメッセージを表示する。

testing.java:10: Cannot throw class java.lang.Integer; it must be a subclass of class java.lang.Throwable.
            throw new Integer(4);
            ^

次のページの Throwable クラスとそのサブクラス、では Throwable クラスについてさらに説明する。

文脈中のthrow 文 を見てみる。 次のメソッドは、共通のスタックオブジェクトを実装するクラスから取り出したものです。pop() メソッドはスタックから先頭の要素を取り除いて、それを返す。

public Object pop() throws EmptyStackException {
    Object obj;

    if (size == 0)
        throw new EmptyStackException();

    obj = objectAt(size - 1);
    setObjectAt(size - 1, null);
    size--;
    return obj;
}

pop() メソッドは、スタック上に要素があるかどうかを調べる。 もしスタックが空であるなら(そのサイズは 0 に等しい)、 pop() が new EmptyStackException オブジェクトをインスタンス化して、それをあげる。 EmptyStackException クラスは java.util パッケージで定義される。 このレッスンの後のページでは、 独自の例外クラスを作成する方法を説明する。 今のところ留意しておいてほしいことは、java.lang.Throwable クラスから継承されるオブジェクトだけをあげることができるということである。

throws 節

pop() メソッドの宣言に次に示す節が含まれることに気付くでしょう。

throws EmptyStackException 

throws 節は、メソッドが EmptyStackException をあげられることを指定する。 知ってのとおり Java 言語では、そのメソッドの適用範囲内であげられるすべての確認済例外をメソッドがキャッチするか指定するかのいずれかを行なうことを要求する。 メソッド宣言の throws 節 を使用してこれを行う。 この条件の詳細については、Java のキャッチまたは指定の条件を参照のこと。 同様に、 メソッドがあげる例外の指定では、メソッドが自分があげる例外をどのように指定するかについて詳細に示す。


Previous | Next | Trail Map | Writing Java Programs | 例外を使用したエラー処理