首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java可以输出错误日志中的变量名和数据值吗?

Java可以输出错误日志中的变量名和数据值吗?
EN

Stack Overflow用户
提问于 2013-12-30 12:42:50
回答 1查看 690关注 0票数 1

(我不是Java程序员,我只是一个终端用户,试图解决其他人代码中缺少异常处理和报告的问题。)

当Java回溯未处理的异常时,有没有办法从Java获取更详细的信息,比如变量名和值?

这是关于Minecraft服务器日志的,显然在某个地方有一个损坏的块文件。错误跟踪似乎太模糊了,无法告诉我问题的确切位置,例如错误中涉及的特定数据文件名称。

代码语言:javascript
运行
复制
2013-12-16 11:19:03 [WARNING] Failed to handle packet for PlayerName [/XX.XX.XX.XX:5046]: java.lang.ArrayIndexOutOfBoundsException: -448550
    at java.util.ArrayList.elementData(ArrayList.java:371)
    at java.util.ArrayList.set(ArrayList.java:399)
    at net.minecraft.world.chunk.storage.RegionFile.<init>(RegionFile.java:89)
    at net.minecraft.world.chunk.storage.RegionFileCache.func_76550_a(SourceFile:61)
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.chunkExists(AnvilChunkLoader.java:63)
    at net.minecraft.world.gen.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:167)
    at net.minecraft.server.management.PlayerInstance.<init>(PlayerInstance.java:38)
    at net.minecraft.server.management.PlayerManager.func_72690_a(PlayerManager.java:116)
    at net.minecraft.server.management.PlayerManager.func_72683_a(PlayerManager.java:175)
    at net.minecraft.server.management.ServerConfigurationManager.func_72375_a(ServerConfigurationManager.java:269)
    at net.minecraft.server.management.ServerConfigurationManager.func_72377_c(ServerConfigurationManager.java:335)
    at net.minecraft.server.management.ServerConfigurationManager.func_72355_a(ServerConfigurationManager.java:180)
    at net.minecraft.network.NetLoginHandler.completeConnection(NetLoginHandler.java:218)
    at cpw.mods.fml.common.network.FMLNetworkHandler.handleClientConnection(FMLNetworkHandler.java:171)
    at cpw.mods.fml.common.network.FMLNetworkHandler.onConnectionReceivedFromClient(FMLNetworkHandler.java:124)
    at net.minecraft.network.NetLoginHandler.func_72529_d(NetLoginHandler.java:194)
    at net.minecraft.network.NetLoginHandler.func_72532_c(NetLoginHandler.java:81)
    at net.minecraft.server.ServerListenThread.func_71766_a(ServerListenThread.java:57)
    at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:29)
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:865)
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:320)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:732)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:614)
    at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)

从日志中,我了解到一个玩家正在尝试登录,它正在加载玩家上次所在的位置的世界数据,但一个区域文件已损坏,文件数据中的数组无效。

但是哪个区域文件呢?它没有告诉我这一点。

是否可以通过变量名和值使这些错误日志更加详细,例如使用额外的启动java命令行设置?

我发现几乎没有什么可以解释如何解释这些回溯的痕迹。我假设每行末尾的数字指的是源代码中的行号,但我无法编辑代码,因此检查这些行的源代码也无济于事。

环境: Ubuntu 13.10

java版本"1.7.0_25“OpenJDK运行时环境(IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3) OpenJDK 64位服务器虚拟机(build 23.7-b01,混合模式)

EN

回答 1

Stack Overflow用户

发布于 2013-12-30 13:36:25

你真的想学习如何使用源码级别的调试器。这些将允许您逐步执行代码,在感兴趣的点或抛出异常时停止,并检查(甚至经常修改)变量值。

哪个是最好的,这在很大程度上是一个品味问题,但我将在这里打破规则,建议您尝试使用Eclipse环境,因为它是我使用过的唯一一个在集成代码编写、调试和管理方面做得很好的IDE。

( Java运行时环境确实有它自己的调试器,它可以做大多数相同的事情--但它是一个命令行工具,我认为它对于初学者来说要难得多。有时它是正确的工具,大多数情况下,您必须通过非常有限的连接远程工作,但我不建议您开始使用它。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20833447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档