JSP教程-JSP中的异常处理
异常通常是在运行时抛出的对象。异常处理是处理运行时错误的过程。在您的Web应用程序中可能随时发生异常。因此,处理异常对于Web开发者来说是一个更安全的选择。在JSP中,有两种执行异常处理的方式:
- 通过页面指令的 errorPage 和 isErrorPage 属性
- 通过web.xml文件中的 <error-page> 元素
通过页面指令元素进行异常处理的示例
在这种情况下,您必须定义并创建一个处理异常的页面,如error.jsp页面。在可能发生异常的页面中,定义页面指令的errorPage属性,如process.jsp页面。
共有3个文件:
- index.jsp 用于输入值
- process.jsp 用于除以两个数字并显示结果
- error.jsp 用于处理异常
index.jsp
<form action="process.jsp">
No1:<input type="text" name="n1" /><br/><br/>
No1:<input type="text" name="n2" /><br/><br/>
<input type="submit" value="divide"/>
</form>
process.jsp
<%@ page errorPage="error.jsp" %>
<%
String num1=request.getParameter("n1");
String num2=request.getParameter("n2");
int a=Integer.parseInt(num1);
int b=Integer.parseInt(num2);
int c=a/b;
out.print("division of numbers is: "+c);
%>
error.jsp
<%@ page isErrorPage="true" %>
<h3>Sorry an exception occured!</h3>
Exception is: <%= exception %>
这个示例的输出:
通过在web.xml文件中指定错误页面元素进行异常处理的示例
这种方法更好,因为您无需在每个jsp页面中指定errorPage属性。在web.xml文件中指定单一条目将处理异常。在这种情况下,可以指定异常类型或错误代码以及位置元素。如果您想处理所有异常,您将需要在exception-type元素中指定java.lang.Exception。让我们看一个简单的例子:
共有4个文件:
- web.xml文件用于指定错误页面元素
- index.jsp用于输入值
- process.jsp用于除以两个数字并显示结果
- error.jsp用于显示异常
1) web.xml文件,如果您想处理任何异常
<web-app>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
</web-app>
如果您想处理任何异常,这种方法更好。如果您知道任何特定的错误代码并想处理该异常,请指定error-code元素而不是exception-type,如下所示:
1) web.xml文件,如果您想处理特定错误代码的异常
<web-app>
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
</web-app>
2) index.jsp文件与上面的示例相同
3) process.jsp
现在,您无需在jsp页面中指定页面指令的errorPage属性。
<%@ page errorPage="error.jsp" %>
<%
String num1=request.getParameter("n1");
String num2=request.getParameter("n2");
int a=Integer.parseInt(num1);
int b=Integer.parseInt(num2);
int c=a/b;
out.print("division of numbers is: "+c);
%>