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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Test {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                String str = "hello" ;       
                try{
                        //System.out.println(Integer.parseInt(str));
                        System.out.println(Integer.parseInt(str));
                }catch(Exception e){
                        System.err.println(e) ;
                }
        }       

}

System.err.println()和System.out.println()两个代码执行后的运行结果都是:
java.lang.NumberFormatException: For input string: "hello"

为什么两个代码运行的结果都是一样的?我想问的就是既然两个的结果都是一样的,是不是说用两个都没问题?用哪个更好啊?

8 个回复

倒序浏览
有的,蛮大的区别!!
System类提供了一个输出流变量System.err,用于传送错误或是状态消息。象System.out,System.err的打印要求由默认设置指向控制台窗口。一些错误消息例子如下:
System.err.println( "System   being   rebooted   in   2   minutes ");
System.err.println( "Zero   balance:withdrawal   ignored ");
System.err.println( "Modem   is   no   online,no   call   possbile ");
在显示这些消息时,更倾向于用System.err而不是System.out,因为操作系统通常提供一个方法来声明程序的标准输出命令是到文件而不是控制窗口。
回复 使用道具 举报
都是输出语句,只是显示颜色不同而已。
回复 使用道具 举报
不管是System.out还是System.err这两个对象都是PrintStream类型的,在功能的本质上是一样的:此流已打开并准备接受输出数据,通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。但是System.err按照惯例,此输出流用于显示错误消息,或者显示那些即使用户输出流(变量 out 的值)已经重定向到通常不被连续监视的某一文件或其他目标(这里我理解为log文件),也应该立刻引起用户注意的其他信息。
回复 使用道具 举报
不管是System.out还是System.err这两个对象都是PrintStream类型的,在功能的本质上是一样的:此流已打开并准备接受输出数据,通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。但是System.err按照惯例,此输出流用于显示错误消息,或者显示那些即使用户输出流(变量 out 的值)已经重定向到通常不被连续监视的某一文件或其他目标(这里我理解为log文件),也应该立刻引起用户注意的其他信息。
回复 使用道具 举报
都是输出流,没有本质区别,err是运行期异常和错误反馈的输出流的方向。但还是有不同
System.out.println 能重定向到别的输出流,可以在屏幕上看不到打印的东西,如输出到一个txt的文件中
.而System.err.println只能在屏幕上实现打印,即使你重定向了也一样。


回复 使用道具 举报
你的代码有问题:str="hello"不能被转换成Interger类型的,因此你的代码会出现异常,system.out.println 是输出代码执行后的结果到控制台,如果出现了异常,当然控制台肯定会打印出异常信息,而system.err.println是打印出异常错误的信息,固他们都会打印出异常的信息
回复 使用道具 举报
说一下二者的区别吧:
  (1)System.out.println 能重定向到别的输出流,这样的话你在屏幕上将看不到打印的东西了,如输出到
      一个txt的log日志中.  
  (2)而System.err.println只能在屏幕上实现打印,即使你重定向了也一样。
  (3)err是运行期异常和错误反馈的输出流的方向。使用err打印出的 字符串,再eclipse的console会显示成红色的。
回复 使用道具 举报
pray 高级黑马 2014-4-26 05:14:33
9#
本来我已经对这个社区失望了,觉得这个社区没有前途了,心里充满了悲哀。但是看了你的这个帖子,又让我对社区产生了希望。是你让我的心里重新燃起希望之火,是你让我的心死灰复燃,是你拯救了我一颗拨凉拨凉的心!本来我决定不会在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在有生之年得以观得如此精彩绝伦的帖子!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马