1

我正在开发一个主类,它通过以下方式编写潜在的异常, e.printStackTrace()并以

System.err.flush();
System.out.println("\n>>> EXITING...");

问题是当异常跟踪很大时,我的退出消息仍然打印在所有错误布道的中间。

我做错了什么?

4

2 回答 2

2

System.errSystem.out是两个独立的流。即使您刷新输出,也只是意味着所有字符都已发送到 o/s。读取两个流的终端(?)在显示它们时可能仍会交织这两个流。

一种补救措施可能是将流捆绑在一起,有效地引导System.err要写入的流System.out,但是您将失去在显示时区分两个流的任何颜色等。

于 2016-04-14T17:34:44.080 回答
0

有同样的问题。我在刷新后添加了 Thread.sleep(5) 。然后它起作用了。

于 2018-12-15T08:43:27.583 回答