JSP 处理异常

2018-03-20 14:19 更新

JSP教程 - JSP处理异常


要在不使用错误处理页面的情况下处理同一页面中的异常,请使用try....catch块。

<html>
<body>
<%
   try{
      int i = 1;
      i = i / 0;
      out.println("The answer is " + i);
   }
   catch (Exception e){
      out.println("An exception occurred: " + e.getMessage());
   }
%>
</body>
</html>

在JSP中,我们可以为每个JSP页面指定一个错误页面来处理异常。每当页面抛出异常时,JSP容器自动返回错误页面。

以下代码显示如何使用<%@ page errorPage =“xxx”%>指令指定main.jsp的错误页面。

<%@ page errorPage="ShowError.jsp" %>
<html>
<body>
<%
   int x = 1;
   if (x == 1)
   {
      throw new RuntimeException("Error condition!!!");
   }
%>
</body>
</html>

例子

下面的代码是ShowError.jsp,它包含指令<%@ page isErrorPage =“true”%>。此伪指令生成异常实例变量。

<%@ page isErrorPage="true" %>
<html>
<body>
<p>Here is the exception stack trace: </p>
<pre>
<% exception.printStackTrace(response.getWriter()); %>
</pre>
</body>
</html>

例2

以下代码显示了如何使用JSP表达式语言输出异常信息。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page isErrorPage="true" %>
<html>
<body>
    <b>Error:</b>${pageContext.exception}
    <b>URI:</b>${pageContext.errorData.requestURI}
    <b>Status code:</b>${pageContext.errorData.statusCode}
    <c:forEach var="trace" items="${pageContext.exception.stackTrace}">
        <p>${trace}</p>
    </c:forEach>
</body>
</html>
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号