我正在开发一个主类,它通过以下方式编写潜在的异常
e.printStackTrace()
并以
System.err.flush();
System.out.println("\n>>> EXITING...");
问题是,当异常跟踪很大时,我的退出消息仍然打印在所有错误讲道的中间。
我做错了什么?
最佳答案
System.err
和 System.out
是两个独立的流。即使您刷新输出,也仅意味着所有字符都已发送到操作系统。读取两个流的终端(?)在显示两个流时可能仍会交错。
一种补救措施可能是将流绑定(bind)在一起,有效地将 System.err
流写入 System.out
,但您将丢失任何颜色等显示时区分两个流。
关于java - 为什么刷新对 System.err 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36629582/