我正在使用 java 和 netbeans IDE,并且我正在尝试调试到输出窗口。我的日志按运行顺序打印到输出窗口,但异常(exception)情况除外,这些异常(exception)情况往往会在代码运行中的顺序之前打印。这是输出的示例 -
19:45:53.266:检查我们是否已经过了起点 19:45:53.267:SortRequestIdList 中出现错误。异常= [Ljava.lang.Object;无法转换为 [Ljava.lang.String; 19:45:53.266:我们已经过了起点。检查我们相对于边界的位置 19:45:53.266:我们低于下限。即将运行 RunnerBelow 19:45:53.267:ListLex 中出现错误。异常=空 19:45:53.266 : *进入运行者下方*
所以异常(exception)情况是“提前”打印。有没有办法可以控制这些打印的时间,以便(事件 A 在事件 B 之前运行)=>(A 的调试输出出现在事件 B 之前)?
感谢你们为此提供的任何帮助!
克里斯
最佳答案
异常通常使用 System.err 打印,而正常的调试消息将写入 System.out。由于使用两个不同的流来创建输出,有时您会看到在异常之前发生的任何调试消息之前写入的异常。
如果您可以更改生成消息的代码,我建议将输出添加到 catch block 中的 System.out 中。 (您可以使用 System.out.println(e.getMessage()))。如果这不可能,您可以将相关调试消息打印到 System.err。
关于Java调试-并发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10118986/