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类型字段。所以它能传递进去。

至于另外两个我不在这里说。

posted on 2016-06-17 11:11  小西红柿  阅读(15144)  评论(1编辑  收藏  举报

导航