我正在使用Eclipse调试一个Java应用程序。在代码中的某个地方,我得到了一个异常和堆栈跟踪:
Caused by: java.io.EOFException: The connection has been reset while reading the header
at com.gemstone.gemfire.internal.cache.tier.sockets.Message.fetchHeader(Message.java:583)
at com.gemstone.gemfire.internal.cache.tier.sockets.Message.readHeaderAndPayload(Message.java:599)
at com.gemstone.gemfire.internal.cache.tier.sockets.Message.read(Message.java:542)
at com.gemstone.gemfire.internal.cache.tier.sockets.Message.recv(Message.java:1029)
at com.gemstone.gemfire.cache.client.internal.AbstractOp.attemptReadResponse(AbstractOp.java:158)
at com.gemstone.gemfire.cache.client.internal.AbstractOp.attempt(AbstractOp.java:363)
at com.gemstone.gemfire.cache.client.internal.ConnectionImpl.execute(ConnectionImpl.java:229)
at com.gemstone.gemfire.cache.client.internal.pooling.PooledConnection.execute(PooledConnection.java:321)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.executeWithPossibleReAuthentication(OpExecutorImpl.java:646)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:108)
... 11 more如何获得整个堆栈而不是... 11 more
发布于 2011-09-29 21:12:03
您拥有整个堆栈。
这只是堆栈跟踪的一部分。就在这之前是另一件事。看看这一行的底线,上一行的顶行。你会看到它们是匹配的。堆栈跟踪以一个不以"Caused by“开头的部分开始。
“起因于”异常隐藏了堆栈跟踪的某些部分,这些部分是堆栈跟踪项在其父级中的逐字副本。换句话说,Java并不是针对每个原因都显示main()的整个堆栈-它只是显示了您还没有看到的内容。请参阅Throwable.printStackTrace() documentation。
当您在创建Throwable时提供原因时,将填充"Caused by“。看看它的构造函数。当一段代码捕获到一个低级异常,然后想要将其作为不同的异常类重新抛出时,就会执行此操作。
发布于 2012-07-30 02:31:35
上面的答案是不准确的,每次堆栈显示“由”字样,这意味着异常通过一个或多个方法,直到它被捕获,然后再次抛出。这可能会发生很多次,堆栈跟踪不是循环,它是单向的,所以不,顶部的东西与底部的东西没有关系,最重要的部分在底部,这是异常的根源,所以如果你有:
类main中出现异常: blah ...lines of code...由FileNotFoundException ...lines of code引起...原因: MalformedURLException ...lines of code...原因: NullPointerException
这样,您就不会太关注FileNotFoundException,而会更关注NullPointerException。比如你有一个属性文件,里面有一个文件名。如果意外地使用mykey来查找属性"myKey",那么propertiesResource将返回一个null,然后它将一直抛出(希望如此)到您的应用程序的最后一个catch块所在的地方。。。在这一点上,它不会被“包装”为nullException,而是被“包装”为FileNotFoundException。。。
发布于 2015-09-03 02:59:11

我们可能偏离了他面临的实际问题。我也遇到了类似的问题,结果是我的限制控制台被选中了。在我删除它之后,我能够看到完整的堆栈跟踪。步骤:右键单击控制台|| ctrl +单击,如果mac进入首选项,请按照上述说明进行操作
https://stackoverflow.com/questions/7597797
复制相似问题