2012-03-01 35 views
1
<%@ page isErrorPage = "true"%> 
    <body> 
    <h2>Your application has generated an error</h2> 
    <h3>Please check for the error given below</h3> 
    <b>Exception:</b><br> 
    <font color="red"><%= exception.toString() %></font> 
    </body> 

我想在JSP表達式中知道exception.toString()是什麼 - 異常對象用於?jsp errorpage - 異常?

我們可以選擇使用<%= exception.getMessage()%> ??

謝謝..

回答

5

我想你問的是什麼包含在異常變量。

exceptionJSP implicit可變

exception變量包含拋出之前的JSP頁面上有errorPage指令轉發到一個網頁,一個isErrorPage指令任何異常。

例如

如果你有哪些拋出異常的JSP(index.jsp)之後(我特意通過解析字符串拋出NumberFormatException異常,顯然你不會寫一個網頁,這樣做,它只是一個例子)

<%@ page errorPage="error.jsp" %> 
<% Integer.parseInt("foo"); //throws an exception %> 

這將會轉發到error.jsp文件,

如果是的error.jsp

<%@ page isErrorPage = "true"%> 
<body> 
<h2>Your application has generated an error</h2> 
<h3>Please check for the error given below</h3> 
<b>Exception:</b><br> 
<font color="red"><%= exception.toString() %></font> 
</body> 

因爲它具有

<%@ page isErrorPage = "true"%> 

頁面指令,隱含變量exception將包含在前面的JSP拋出的異常

所以,當你要求的index.jsp時,會拋出異常,並轉發到error.jsp文件將輸出HTML一樣這

<body> 
<h2>Your application has generated an error</h2> 
<h3>Please check for the error given below</h3> 
<b>Exception:</b><br> 
<font color="red">java.lang.NumberFormatException: For input string: "foo"</font> 
</body> 

由於@JB Nizet提到的例外是一個instanceof的Throwable調用exception.getMessage()For input string: "foo",而不是java.lang.NumberFormatException: For input string: "foo"

0

toString()getMessage()Throwable兩種方法,你當然可以通話的雙方。不過,他們不這樣做。要知道他們做了什麼,請閱讀他們的文檔。