先来看如下代码:
1.System.out
package book;
public class JiOu{
public static void main(String args[]) {
String str = "hello";
try {
System.out.println(Integer.parseInt(str));
}catch(Exception e) {
System.out.println(e);
}
}
}
运行结果:
java.lang.NumberFormatException: For input string: "hello"
2.System.err
package book;
public class JiOu{
public static void main(String args[]) {
String str = "hello";
try {
System.out.println(Integer.parseInt(str));
}catch(Exception e) {
System.err.println(e);
}
}
}
运行结果:
java.lang.NumberFormatException: For input string: "hello"
3.对比观察以上结果,这不是完全一样吗?别急,再来看结果截图:
System.out
System.err
4.现在对比一下,很明显可以发现System.err打印的异常信息是红色的,而System.out的是普通颜色的。
下面来总结一下这两者的异同:
1>两者都是PrintStream的实例化对象,而且通过实例代码可以发现,两者都可以输出错误信息。
2>但是System.out一般是将信息显示给用户看,是正常的信息显示,而System.err的信息正好相反,是不希望用户看到的,会直接在后台打印,是专门显示错误的。
综上,总结一下,如果要想输出错误信息最好不要使用System.out而是直接使用System.err,这一点只能从概念上来划分。