printStackTrace()输出和System.out输出非调用顺序输出

在处理Java异常时,发现`printStackTrace()`与`System.out.println()`的输出顺序并不总是按代码顺序。实际上,`printStackTrace()`通过`System.err`输出,而`System.out.println()`通过`System.out`输出。由于操作系统的调度,这两者可能会交错显示。要区分两者,可以考虑将`System.out`重定向到文件,避免与`System.err`混淆。
摘要由CSDN通过智能技术生成

IDE:NetBeans8.0.2
jdk:1.7.0_45

我们在处理异常的时候,捕获异常e,并e.printStackTrace()。如果在其他地方添加标准输出System.out.println,会发现控制台显示并不是按照我们代码中的输出顺序显示信息的。
首先我需要确定e.printStackTrace()会输出到哪里,所以在try语块的内部和外部都添加了标准输出来验证。
参见如下代码:

public class JavaTest {
    private static void dosomething(){
        System.out.println("1+1=2");
    }

    public static void main(String[] args) {
        File file=new File("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值