Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java调试-异常的并发性_Java_Debugging_Exception_Netbeans_Concurrency - Fatal编程技术网

Java调试-异常的并发性

Java调试-异常的并发性,java,debugging,exception,netbeans,concurrency,Java,Debugging,Exception,Netbeans,Concurrency,我将java与netbeans IDE结合使用,并尝试调试输出窗口。我的日志以运行顺序打印到输出窗口,例外情况除外,在代码运行过程中,异常倾向于提前打印。下面是一个输出示例- 19:45:53.266:检查我们是否超过了起点 19:45:53.267:排序问题列表中出现错误。异常=[Ljava.lang.Object;无法强制转换为[Ljava.lang.String; 19:45:53.266:我们已经过了起点。检查我们相对于边界的位置 19:45:53.266:我们在下限以下。即将在下限以下

我将java与netbeans IDE结合使用,并尝试调试输出窗口。我的日志以运行顺序打印到输出窗口,例外情况除外,在代码运行过程中,异常倾向于提前打印。下面是一个输出示例-

19:45:53.266:检查我们是否超过了起点 19:45:53.267:排序问题列表中出现错误。异常=[Ljava.lang.Object;无法强制转换为[Ljava.lang.String; 19:45:53.266:我们已经过了起点。检查我们相对于边界的位置 19:45:53.266:我们在下限以下。即将在下限以下运行 19:45:53.267:ListLex中出错。异常=null 19:45:53.266:*进入下面的Runner*

因此,异常是“提前”打印的。是否有方法可以控制这些打印的时间,以便(事件a在事件B之前运行)=>(a的调试输出显示在事件B之前)

谢谢你们在这方面提供的帮助


Chris

printStackTrace
使用
System.err
,而对于所有其他输出,您可能使用
System.out
。在代码中使用
System.err.println
(简单的解决方案),或者创建一个方法,该方法将接受异常并将其stacktrace打印到
System.out
(相当困难).

异常通常使用System.err打印,而正常调试消息将写入System.out。由于使用两个不同的流创建输出,有时您会看到在异常发生之前的任何调试消息之前写入的异常


如果您可以更改生成消息的代码,我建议将输出添加到catch块中的System.out。(您可以使用System.out.println(e.getMessage())。如果不可能,您可以将相关调试消息打印到System.err。

异常通常使用System.err打印,而正常调试消息将写入System.out。由于使用两个不同的流来创建输出,有时您会看到异常写入任何调试消息之前例外


如果您可以更改生成消息的代码,我建议将输出添加到catch块中的System.out。(您可以使用System.out.println(e.getMessage())。如果这不可能,您可以将相关的调试消息打印到System.err。

啊,谢谢,这很有意义。我可以删除System.err的用法,但它们很有用,因为它们以红色突出显示我的输出,而其他所有内容都是黑色。有没有办法选择输出文本的颜色?谢谢!-添加:我要玩一下)JCDP看起来很有希望,以前从未听说过。虽然我不确定它是否能与NetBeans控制台一起工作。除此之外,System.err输出的着色是由您的IDE完成的,我没有NetBeans的经验,所以我不知道您是否可以更改输出的颜色,但您可能希望查看那里的属性。PS-以获取更多信息nyone对此很感兴趣:JCDP站点在下载中提供了最新的JANSI jar文件,但是JANSI开发人员已经修改了这些方法,使它们与JCDP不兼容。如果您想使用JCDP,那么就下载一个早期版本的JANSI(我刚刚尝试了1.0,它可以工作)啊,谢谢,有道理。我可以删除System.err的用法,但它们很有用,因为它们用红色突出显示我的输出,而其他所有内容都是黑色。有没有办法选择输出文本的颜色?谢谢!-加上:我要玩一玩)JCDP看起来很有希望,以前从未听说过。尽管我不确定它是否能用w除此之外,System.err输出的着色是由您的IDE完成的,我没有使用NetBeans的经验,所以我不知道您是否可以更改输出的颜色,但是您可能希望查看那里的属性。PS-对于任何有兴趣使用它的人来说:JCDP站点提供了最新的JANSI jar文件下载,但JANSI开发人员修改了方法,使其与JCDP不兼容。如果您想使用JCDP,请下载JANSI的早期版本(我刚刚尝试了1.0,它可以工作)