1. 程式人生 > >java 中的e.printStackTrace()方法

java 中的e.printStackTrace()方法

    在java 基礎課上學到異常的時候,課本上的try……catch語句裡的e.printStackTrace()完全不懂抓狂,上網搜了一下資料和查閱API,把自己對這個的一點了解寫出來。

   當我們寫的語句可能觸發異常時,eclipse就會提示我們用捕獲異常語句try……catch包圍它,java執行時系統會自動將catch括號中的Exception e 初始化,也就是例項化Exception型別的物件,e是此物件引用名稱。然後e(引用)會自動呼叫Exception類中指定的方法,也就出現了e.printStackTrace()。當然,我們也可以用System語句輸出,那麼這兩個語句有什麼區別呢?

1、兩個輸出語句都能輸出,System語句可以提示你異常發生的位置;但e.printStackTrace()可以顯示更深的呼叫關係。例如:程式中有繼承的關係, Rose extends Flower ; Flower extends Plant;假如我們在建立 Rose 的時候發生異常,那麼System語句就會輸出異常 at Rose ,然後向外層輸出

e.printStackTrace()輸出除了標準異常外,列印  at  Plant at   Flower at  Rose .......再向外層調查。  在向外層調查的情況下,都一樣

2、System.out.println();當發生異常時顯示你自己設定的字串資訊;

e.printStackTrace();是列印異常的堆疊資訊,指明錯誤原因。

note:其實當發生異常時,通常要處理異常,這是程式設計的好習慣,所以e.printStackTrace()可以方便你除錯程式!