【发布时间】:2016-04-14 17:05:57
【问题描述】:
我正在开发一个主类,它通过以下方式编写潜在的异常
e.printStackTrace() 并以
System.err.flush();
System.out.println("\n>>> EXITING...");
问题是当异常跟踪很大时,我的退出消息仍然打印在所有错误布道的中间。
我做错了什么?
【问题讨论】:
-
请发MCVE。
-
是否涉及多个线程?
-
我担心它不是确定性的,因为我的私有代码使用具有不同滞后的不同操作,并且缓冲区可能已满或未满,每个终端都有其性能。在我达到这种情况之前,这有点偶然,所以我认为不需要进行基准测试。应该是概念问题。来吧,它是单线程的,逻辑上可复制 3 行。
-
在进一步研究之前,至少有人可以判断这是否是预期问题
-
err和out是两个独立的流。即使您刷新输出,也只是意味着所有字符都已发送到 o/s。读取这两个流的终端(?)在显示它们时可能仍会交织这两个流。
标签: java stream java-8 printstream