首先,什么是exceptions?众所周知exceptions就是一个异常事件,它可能出现在程序的任何地方,比如:你试图连接一个数据库,但是这个数据库已经关闭,这时就产生一个例外.
如何捕捉(throw)一个例外啦?我们可以用下面的表达式:
<%
try {
// code which can throw can exception
} catch(exception e) {
// exception handler code here
}
%>
当然,还有另外的一种有用的方法:就是指定专用的例外处理页面,当例外发生时便由它来处理.这就是我下面要讲述的.
建立三个页面:1.form.html(简单的年龄输入筐)代码如下:
<html>
<head>
<style>
body, input { font-family:tahoma; font-size:8pt; }
</style>
</head>
<body>
<!-- html form -->
<form action="formhandler.jsp" method="post">
enter your age ( in years ) :
<input type="text" name="age" />
<input type="submit" value="submit" />
</form>
</body>
</html>2:formhandler.jsp()(处理由form.html传来的age)代码如下:
<%@ page errorpage="exceptionhandler.jsp" %>
<html>
<head>
<style>
body, p { font-family:tahoma; font-size:10pt; }
</style>
</head>
<body>
<%-- form handler code --%>
<%
int age;
age = integer.parseint(request.getparameter("age"));
%>
<%-- displaying user age --%>
<p>your age is : <%= age %> years.</p>
<p><a href="form.html">back</a>.</p>
</body>
</html>
请注意:(1)<%@ page errorpage="exceptionhandler.jsp" %>是指明了一个例外处理页面,它必须在jsp的第一行.(2)
<%
int age;
age = integer.parseint(request.getparameter("age"));
%>是取得age(string类)并转化为int(类).<p>your age is : <%= age %> years.</p>是输出你刚才输入的age,现在例外就可能发生了,如果 你输入的不是数字,比如:zsa;这时string能转化成int吗?3.exceptionhandler.jsp(处理例外)代码如下:<%@ page iserrorpage="true" import="java.io.*" %>
<html>
<head>
<title>exceptional even occurred!</title>
<style>
body, p { font-family:tahoma; font-size:10pt; padding-left:30; }
pre { font-size:8pt; }
</style>
</head>
<body>
<%-- exception handler --%>
<font color="red">
<%= exception.tostring() %><br>
</font>
<%
out.println("<!--");
stringwriter sw = new stringwriter();
printwriter pw = new printwriter(sw);
exception.printstacktrace(pw);
out.print(sw);
sw.close();
pw.close();
out.println("-->");
%>
</body>
</html>注意:<%@ page iserrorpage="true" %>表明:当jsp宣称了一个errorpage时,应该声明iserrorpage="true;
<%
out.println("<!--");
stringwriter sw = new stringwriter();
printwriter pw = new printwriter(sw);
exception.printstacktrace(pw);
out.print(sw);
sw.close();
pw.close();
out.println("-->");
%>运用了printwriter和stringwrighter类,所以你不得不声明:import java.io.* 在你jsp程序中;即:<%@ page iserrorpage="true" import="java.io.*" %>好了:开始演示:在ie中输入http://localhost:8080/myapp/form.html 回车!当然你先要启动tomcat! 看见了吗?在输入筐中入任何一个数字:24等:结果是:your age is : 24 years再试一下:输入:zsa.是什么结果啦??java.lang.numberformatexception: for input string: "zsa";明白了吧!!!!
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




