函式功能
<c:catch>主要用來處理產生錯誤的異常狀況,並且將錯誤信息儲存起來。
函式語法
<c:catch [var="varName"] >
… 欲抓取錯誤的部分
</c:catch>
<c:catch>的屬性為var,用來儲存錯誤信息的變數。
名稱
說 明
EL
類型
必須
默認值
var
用來儲存錯誤信息的變數
N
String
否
無
說明
<c:catch>主要將可能發生錯誤的部分放在<c:catch>和</c:catch>之間。如果真的發生錯誤,可以將錯誤信息儲存至varName變數中,例如:
<c:catch var="message">
://可能發生錯誤的部分
</c:catch>
另外,當錯誤發生在<c:catch>和</c:catch>之間時,則只有<c:catch>和</c:catch>之間的程式會被中止忽略,但整個網頁不會被中止。
函式示例
例,寫一個簡單的範例,檔案名稱為core_catch.jsp,來體會<c:catch>的使用方式。
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<html>
<head>
<title>CH7 - Core_catch.jsp</title>
</head>
<body>
<h2><c:out value="<c:catch> 的用法" /></h2>
<c:catch var="error_Message">
<%
String eFormat = "not number";
int i = Integer.parseInt(eFormat);
%>
</c:catch>
<c:out value="$" />
</body>
</html>
教材例程15-5,c_catch.jsp,<c:catch>標籤的套用。
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>JSTL:的使用</title>
</head>
<body bgcolor="#FFFFFF">
<c:catch var="myexception">
<%
int i=0;
int j=10/i;
%>
</c:catch>
<hr>異常:
<c:out value="$"/>
<hr>異常exception.getMessage=
<c:out value="${myexception.message}"/>
<hr> 異常exception.getCause=
<c:out value="${myexception.cause}"/>
</body>
</html>