3

好的,所以我有一个非常大的 Java 项目,我已经从事了多年(如果你必须知道的话,一个游戏)。

不幸的是,一条神秘的消息已经开始打印。无论我搜索的时间长短,我都无法确定消息的位置。

我知道您可以覆盖 println 方法,并且我很好奇是否可以将某种调试信息附加到正在打印的消息中?就像打印它的行或文件一样?我试着在谷歌上搜索这个,但它太详细了,我找不到答案。

更糟糕的是,这个信息非常模棱两可。它只是“-1”。

至少我现在知道使用适当的记录器而不是简单的 println()。

4

3 回答 3

6

在这种情况下,您可以在 ide 中使用条件断点。这是 ide 的一个非常有用的功能,但并不总是广为人知。

您设置了一个断点,并且您希望它仅在某些情况下暂停应用程序,在这种情况下,println 方法的参数是您的“神秘的 ufindable 字符串”

Intelllij IDEA的情况下,这看起来像这样:

在此处输入图像描述

于 2013-11-15T06:34:59.367 回答
2

你可以做

 new Exception().printStackTrace()

或类似的,而不抛出创建的异常来获取当前执行点的完整堆栈跟踪。而且没有必要扔。您可以将它们保存到列表中以供以后处理。

于 2013-11-14T22:16:38.677 回答
-1

这看起来像是来自 ArrayIndexOutOfBoundsException 的消息。在此类异常上添加断点。尝试这个:

String[] arr = new String[0];
try{
    System.out.println(arr[-1]);
}catch (Exception e){
    System.out.println(e.getMessage());
}
于 2013-11-15T06:43:00.207 回答