JSTL <c:catch>

Javaには例外(exception)やエラー(error)が発生したときに、それを補足(catch)して例外処理を行う try catch 文がある。同様に、JSPにも発生した例外を補足する仕組みが用意されている。

<c:catch> は発生した例外を補足するJSP標準タグライブラリ(JSTL)である。

タグ

JSPにおいて例外が発生する可能性がある箇所を <c:catch> タグで囲む。これは、Javaにおける try ブロックに相当する。

<c:catch var="exception">
  <!-- 例外が発生する可能性のある処理 -->
</c:catch>

発生した例外は、var属性に指定した変数に格納され、後の処理に利用できる。

属性

<c:catch> タグには次の属性を指定する。

var
発生した例外を格納する変数の名前

属性の指定は必須ではないが、var属性を省略すると、発生した例外の詳細が分からない。

<c:catch> は発生した例外を補足するJSP標準タグライブラリ(JSTL)である。

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
  <head>
    <title>Core catch tag</titile>
  </head>
  <body>
    <c:catch var="e">
      <%-- Divide by zero --%>
      <c:out value="${1/0}" />
    </c:catch>
    <c:if test="${e != null}">
      <p>Exception: ${e}</p>
      <p>Exception message: ${e.message}</p>
    </c:if>
  </body>
</html>

JavaのExceptionクラス

Javaのjava.lang.Exceptionクラスは、次のメソッドを持つ。

Exceptionクラスのメソッド
メソッド 説明
public final void addSuppressed(Throwable exception) 指定された例外を追加する。
public Throwable fillInStackTrace() 実行スタック・トレースを埋め込む。
public Throwable getCause() 例外の原因を返す。
public String getLocalizedMessage() ローカライズされた詳細メッセージ文字列を返す。
public String getMessage() 詳細メッセージ文字列を返す。
public StackTraceElement[] getStackTrace() スタック・トレース要素の配列を返す。
public final Throwable[] getSuppressed() 抑制された例外をすべて含む配列を返す。
public Throwable initCause(Throwable cause) 例外の原因を指定された値に初期化する。
public void printStackTrace() スタック・トレースを標準エラー・ストリームに出力する。
public void printStackTrace(PrintStream s) スタック・トレースを指定された印刷ストリームに出力する。
public void printStackTrace(PrintWriter s) スタック・トレースを指定されたプリント・ライターに出力する。
public void setStackTrace(StackTraceElement[] stackTrace) スタック・トレース要素を設定する。
public String toString() 短い記述を返す。

JSP

JSP (JavaServer Pages) には、他にも次のJSP標準タグライブラリ(JSTL)がある。

JSPには次のディレクティブがある。

JSPには次のアクションタグがある。