jsp頁面的例外處理

來源:互聯網
上載者:User
js|頁面 在這篇文章中,我將向你講解一個jsp頁面例外(Exceptions)是怎樣拋出(Throw)並且怎樣捕捉這些例外,以便使你在jsp設計中能得到更有利的資訊.
首先,什麼是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";明白了吧!!!!


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.