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類型字段。所以它能傳遞進去。
至於另外兩個我不在這里說。