黑马程序员技术交流社区

标题: system.out.print(); VS e.printStackTrace(); [打印本页]

作者: o火o把o    时间: 2011-10-31 16:48
标题: system.out.print(); VS e.printStackTrace();
在异常处理的 catch 块中.
用 system.out.print(); 和 用 e.printStackTrace(); 有区别吗?
作者: 张振宁    时间: 2011-10-31 17:01
system.out.print();  这个是命令行输出。
e.printStackTrace(); 这个是输出异常信息。
作者: 姚志华    时间: 2011-10-31 17:02
当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因
老师用system.out.println()一是因为他知道要出现的是什么异常,二是因为老师想简写,其实你可以用它代替e.printStackTrace(); ,但是你要知道你这个捕获的异常是什么异常,也就是说你只有自己给定特定的捕获异常,才可以自己打印那个异常的名字
作者: 肖居上    时间: 2011-10-31 17:13
e.printStackTrace()是打印整个Exception轨迹栈,而System.out.print(e)只是打印了e.toString()方法返回的结果。

e.printStackTrace()的信息更丰富,更完整!
System.out.print(e)相当于
System.out.print(e.toString())
e.printStackTrace()相当于
System.out.print(e.getStackTrace().toString())
推荐用 e.printStackTrace() 会把从头到尾的方法都列出来,比较好查找错误

作者: 黄健    时间: 2011-10-31 17:19
system.out.print();使用的是“标准”输出流(system.out),可以把你想输出的东西,打印到控制台
e.printStackTrace(); 在调用时会使用“标准”错误输出流(system.err),这个方法会把e对象的错误信息输出,且在第一行先输出e对象toString方法的返回值。
作者: 沙铁健    时间: 2011-11-1 21:10
按自己的理解与操作.
System.out.println()当发生异常时显示你自己设定的字符串信息.
e.printStackTrace();是打印异常的堆栈信息,指明错误原因.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2