<c:catch>
xmlns:c="http://java.sun.com/jsp/jstl/core"
SYNOPSIS
<c:catch
>
</c:catch>
| var="変数名" |
| 例外の発生する可能性のあるブロック. |
説 明
タグ内部で発生したすべての例外を catch できます。これは以下のコードに相当します。
Java
try{
…
} catch(Throwable ex){
pageContext.setAttribute(var, ex);
}
var 属性を省略した場合、catch した例外はどこにも格納されません。
参照:
式言語(EL)
<jsp:forEach> 属 性
内 容
例外の発生する可能性のあるブロック。
使用例
<c:catch> 内で意図的に NullPointerException を発生させて
その例外のクラス名を出力します。
JSP
<c:catch var="ex">
<% ((String)null).toString(); %>
</c:catch>
<c:if test="${not empty ex}">
ERROR: <c:out value="${ex.class.name}" />
</c:if>
実行結果
ERROR: java.lang.NullPointerException
<c:catch> を正常に抜ける時に自動でクリアされます)。
JSP
<c:forEach var="i" begin="1" end="5">
<c:catch var="ex">
<c:if test="${i%2==0}"><% ((String)null).toString(); %></c:if>
</c:catch>
<c:if test="${not empty ex}">
ERROR[${i}]: <c:out value="${ex}" /><br>
</c:if>
</c:forEach>
実行結果
ERROR[2]: java.lang.NullPointerException ERROR[4]: java.lang.NullPointerException