『壹』 java 使用e.printStackTrace列印異常信息會減少內存嗎
Java拋出異常的方法有很多,其中最常用的兩個:
System.out.println(e),這個方法列印出異常,並且輸出在哪裡出現的異常,不過它和另外一個e.printStackTrace()方法不同。後者也是列印出異常,但是它還將顯示出更深的調用信息。
比如說:
A extends ---> B extends ----> C
當在創建A的過程中出現問題了,我們拋出異常。
System.out.println(e),除了標准異常外,只列印at A 然後再向外層層輸出。
e.printStackTrace(),除了標准異常外,列印
at C
at B
at A
.......再向外層調查。
在向外層調查的情況下,都一樣。最後都會回到com.sun.midp.main.Main.main
『貳』 為什麼java要把異常列印到堆棧
不是列印到堆棧,而是列印棧信息,因為程序執行的時候,最終還是要靠01二進制代碼執行,運行在堆棧裡面,所以出錯或拋出異常時能被捕獲到
『叄』 java中如何獲取throws拋出的異常,並且把異常列印到指定的jsp頁面
比如你又一個方法叫a,調用了一個方法b(b方法throws了一個異常),那麼在a裡面使用try-catch捕獲這個異常,在catch塊裡面,使用jsp的request,或者session將異常對象e.getMessage的內容存儲到制定的變數裡面(例如request.setAttribute("errorMessage",e.getMessage));
然後到頁面使用EL表達式${errorMessage}取出來就好了。
『肆』 java中怎麼把發生的異常列印在web頁面上
用try catch語句實現:
try{
//業務代碼
}catch(Exceptione){
e.printStackTrace();//列印異常
thrownewException("WriteInputStreamError"+e.toString());//拋給客戶端的異常
}