exception对象
在JSP页面中,经常需要处理一些异常信息,这时,可以通过exception对象来实现。exception对象是java.lang.Exception类的实例对象,它用于封装JSP中抛出的异常信息。需要注意的是,exception对象只有在错误处理页面才可以使用,即page指令中指定了属性<%@ page isErrorPage=”true”%>的页面。接下来,通过一个案例来学习exception对象的使用,如例1、2所示。
例1 price.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
2 <%@ page errorPage="execp.jsp"%>
3 <%
4 String strprice=request.getParameter("price");
5 double price=Double.parseDouble(strprice);
6 out.println("Total price="+price*3);
7 %>
在例1中,price.jsp页面通过page指令的errorPage属性将excep.jsp指定为错误处理页面。
例2 execp.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
2 <%@ page isErrorPage="true"%>
3 <%
4 out.println("exception.toString:");
5 out.println("<br>");
6 out.println(exception.toString());
7 out.println("<p>");
8 out.println("exception.getMessage():");
9 out.println("<br>");
10 out.println(exception.getMessage());%>
启动Tomcat服务器,在浏览器输入地址http://localhost:8080/chapter07/price.jsp?price=3.5
,浏览器显示的界面如图1所示。
图1 运行结果
从图1中可以看出,浏览器正确的显示出了总价,没有出现任何异常信息。但是,如果在浏览器输入地址http://localhost:8080/chapter07/price.jsp?price=abc
,浏览器显示的界面如图2所示。
图2 运行结果
从图2中可以看出,当参数price的值不是数字时,这时例1的第5行会抛出异常,浏览器将错误的信息显示了出来,说明当price.jsp页面发生错误时,会自动调用execp.jsp 页面进行错误处理。