Java调试-并发异常

标签 java debugging exception netbeans concurrency

我正在使用 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/

相关文章:

java - 如何使用 json 从 java 发布多个数组

ruby - 我如何在 Emacs 中使用 ruby​​-debug?

python - Django - 将模型字段复制到另一个字段

exception - 在 C# 中捕获 Ironpython 异常

java - 从 Java 应用程序连接到远程 GridGain 节点

java - 通过Java启动appium服务器

c# - 无法正确单步执行静态构造函数中的代码(VS2019、C#、.NET 4.7.2)

c# - 异常处理(任务并行库).Net Framework 4.0 Beta 2

c# - 使用 asp.net webapi 和 TPL 捕获未处理的异常

java - Spring 启动: disable security auto configuration