我正在开发一个主要类,通过它来编写潜在的异常
e.printStackTrace()
并以
System.err.flush();
System.out.println("\n>>> EXITING...");
问题是,当异常跟踪很大时,我的退出消息仍然会在所有错误布道中打印出来。
我做错了什么?
答案 0 :(得分:2)
System.err
和System.out
是两个独立的流。即使您刷新输出,这只意味着所有字符都已发送到o / s。读取两个流的终端(?)在显示它们时仍然可以交错两个流。
一种补救方法可能是将流绑定在一起,有效地指示将System.err
流写入System.out
,但是在显示时,您将丢失区分两个流的任何着色等。
答案 1 :(得分:0)
有同样的问题。我在刷新后添加了Thread.sleep(5)。然后它起作用了。