e.printStackTrace()


try{ 
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String inputLine=input.readline();
int i=Integer.parseInt(inputLine).intValue();
}
catch(Exception e){
e.printStackTrace() ;
}

在后面加e.printStackTrace() ;是為什么?

catch(Exception e){
e.printStackTrace() ;
}
當try語句中出現異常是時,會執行catch中的語句,java運行時系統會自動將catch括號中的Exception e 初始化,也就是實例化Exception類型的對象。e是此對象引用名稱。然后e(引用)會自動調用Exception類中指定的方法,也就出現了e.printStackTrace() ;。
printStackTrace()方法的意思是:在命令行打印異常信息在程序中出錯的位置及原因。(這是白話解釋,比較容易理解)

========================================================================================================

在捕獲異常的時候,大家都可能要用到這樣的一條語句:e.printStackTrace();

e是Throwable的實例異常對象,用在catch語句中,相當於一個形參,一旦try捕獲到了異常,那么就將這個異常信息交給e,由e處理,printStackTrace()是異常類的一個方法。與它重載的方法還有printStackTrace(PrintStream s) 和printStackTrace(PrintWriter s)。

在Throwable類中printStackTrace()內部是這樣執行的:

public void printStackTrace() {
        printStackTrace(System.err);

}

它調用了printStackTrace(PrintStream s)方法。err是System類當中的一個靜態PrintStream類型字段。所以它能傳遞進去。

至於另外兩個我不在這里說。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM