A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© o火o把o 黑马帝   /  2011-10-31 16:48  /  4740 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在异常处理的 catch 块中.
用 system.out.print(); 和 用 e.printStackTrace(); 有区别吗?

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

5 个回复

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

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
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() 会把从头到尾的方法都列出来,比较好查找错误

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 很给力!

查看全部评分

回复 使用道具 举报
当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因
老师用system.out.println()一是因为他知道要出现的是什么异常,二是因为老师想简写,其实你可以用它代替e.printStackTrace(); ,但是你要知道你这个捕获的异常是什么异常,也就是说你只有自己给定特定的捕获异常,才可以自己打印那个异常的名字

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
system.out.print();  这个是命令行输出。
e.printStackTrace(); 这个是输出异常信息。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马