使用 jstl 捕获 jsp 中的错误
Catch errors in jsp using jstl
我有这段代码可以注册文本的值 num 并检查它是偶数还是奇数,并且它适用于此,当我写一个非数字值然后出现 500 错误时出现问题我猜这是一个 NumberFormatException
<form action="Main" method="post">
<label>Num: </label><input type="text" name="num" size=2/>
<input type="submit" value="OK"/>
</form>
<c:if test="${num!=null }">
<c:choose>
<c:when test="${num%2==0 }">
<p>${num } is even</p>
</c:when>
<c:otherwise>
<p>${num } is odd</p>
</c:otherwise>
</c:choose>
</c:if>
有什么方法可以捕捉到它吗?
为此,您可以使用 <c:catch>
。
<c:set var="num" value="Some string"/>
<c:catch var ="e">
<c:if test="${num!=null }">
<c:choose>
<c:when test="${num%2==0 }">
<p>${num } is even</p>
</c:when>
<c:otherwise>
<p>${num } is odd</p>
</c:otherwise>
</c:choose>
</c:if>
</c:catch>
<c:if test = "${e != null}"> ${e} </c:if>
您将获得:
java.lang.NumberFormatException: For input string: "Some string"
我有这段代码可以注册文本的值 num 并检查它是偶数还是奇数,并且它适用于此,当我写一个非数字值然后出现 500 错误时出现问题我猜这是一个 NumberFormatException
<form action="Main" method="post">
<label>Num: </label><input type="text" name="num" size=2/>
<input type="submit" value="OK"/>
</form>
<c:if test="${num!=null }">
<c:choose>
<c:when test="${num%2==0 }">
<p>${num } is even</p>
</c:when>
<c:otherwise>
<p>${num } is odd</p>
</c:otherwise>
</c:choose>
</c:if>
有什么方法可以捕捉到它吗?
为此,您可以使用 <c:catch>
。
<c:set var="num" value="Some string"/>
<c:catch var ="e">
<c:if test="${num!=null }">
<c:choose>
<c:when test="${num%2==0 }">
<p>${num } is even</p>
</c:when>
<c:otherwise>
<p>${num } is odd</p>
</c:otherwise>
</c:choose>
</c:if>
</c:catch>
<c:if test = "${e != null}"> ${e} </c:if>
您将获得:
java.lang.NumberFormatException: For input string: "Some string"