By default, errors in JSP pages result in dedicated error-pages appearance. The point is, you probably don't want your important pages to produce such errors. Unless back-end Java programmers supporting your application have promised to take care of errors, you should catch and handle them yourself or use a JSP errorPage.

The <c:catch> tag lets you capture errors and either discard them entirely or record information about them for later study. Errors that occur inside the body of a <c:catch> tag do not cause your whole page to abort. Instead, they abort only the rest of the <c:catch> tag's body. The sample code below shows how to catch an exception raised by <fmt:parseNumber> in the case of illegal input:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

<p>You entered "<c:out value="${param.favorite}"/>". </p>

<c:catch var="parsingError">

	<fmt:parseNumber var="fav" value="${param.favorite}"/>
	
	<p>As far as I can tell, this corresponds to the
		number <c:out value="${fav}"/>.
	</p>
	
	<p>
		If you multiply this number by 2 and add 1, you get
		<c:out value="${fav * 2 + 1}"/>. I like that number better.
	</p>

</c:catch>

<c:if test="${not empty parsingError}">
	Sorry, this doesn't look like a number to me.
	Perhaps you're in the wrong country?
</c:if>