Javaに関する様々な情報をご紹介します。

12暗黙オブジェクト(exception)

Javaに関する様々な情報をご紹介します。

暗黙オブジェクト(exception)

JSPでは、宣言せずに使用できるオブジェクトとして9つの暗黙オブジェクト(request, response, pageContext, session, application, config, page, exception)が用意されています。それぞれの暗黙オブジェクトにはJSPプログラムで頻繁に使用するメソッドが定義されています。ここでは、暗黙オブジェクトのうち、exceptionについて解説します。

概要

暗黙オブジェクトexceptionは、java.lang.Throwableクラスのオブジェクト変数です。このオブジェクトはJSPプログラムの例外処理に使用します。例外がスローされたとき、なんの例外処理も行わない場合は、コンテナが生成するデフォルトのエラーメッセージが表示されます。デフォルトのエラーメッセージを表示したくない場合、簡潔なメッセージのみ表示したい場合などにexceptionオブジェクトを使用します。

JSPプログラムでは、一般に例外処理を行うJSPプログラムを別に分けます。例外処理を行うJSPプログラムでexceptionオブジェクトを使用します。exceptionオブジェクトを使用するためにはpageディレクティブのisErrorPage属性を"true"にする必要があります。デフォルトは"false"です。

例外をスローするJSPプログラムに、例外処理を行うJSPプログラムを指定します。例外処理を行うJSPプログラムはpageディレクティブのerrorPage属性で指定します。

メソッド

以下にexceptionオブジェクトで使用できる主なメソッドを紹介します。

戻り型 メソッド 説明
String getMessage( ) 詳細なエラーメッセージを表示します。
String getLocalized
Message( )
地域対応されたメッセージを表示します。メッセージの内容はgetMessageメソッドと同じです。
String toString( ) 簡潔なエラーメッセージを表示します。

※ その他のメソッドについてはAPIリファレンスをご参照ください。

使用例

exceptionオブジェクトの使用例について解説します。throwException.jspで無理やり例外をスローさせ、exException.jspで例外処理が実行されるかを例示します。

throwException.jsp

<%-- (1)例外処理を行うJSPプログラムをerrorPage属性で指定しています。 --%>
<%@ page contentType="text/html; charset=windows-31j"
    errorPage="/exException.jsp"%>

<html>
<body>

<%
    //(2)0で除算し、無理やりArithmeticExceptionエラー
    //   をスローしてます。
    int x = 10/0;
%>

</body>
</html>

exException.jsp

<%-- (1)exceptionオブジェクトを使用するためisErrorPage属性を指定しています。 --%>
<%@ page contentType="text/html; charset=windows-31j"
    isErrorPage="true"%>

<html>
<body>

<%
    out.println("例外処理JSPプログラム");
    out.println("<BR><BR>");

    //(2)スローされた例外の簡潔な情報を
    //   toStringメソッドを使用して表示します。
    out.println(exception.toString());
%>

</body>
</html>

【実行結果】JSPプログラムの実行方法に関しては、Javaの道:Tomcat(プログラム配置・実行)を参照してください。

Javaの道_exception_実行結果

12暗黙オブジェクト(exception)