我正在监控某些服务器日志,并且有很多NullPointerExceptions
。日志包含堆栈跟踪和来自getCause的原因。
问题是这些NPE不包含原因。在JavaDocs中,它表示当它不存在或未知(不是非常有用)时,原因为空。
所以我的问题是,有人遇到这些“无根据”的NPE吗?如果是这样,在那种情况下哪个问题呢?我有点迷失在这里,所以任何见解都会受到赞赏。
答案 0 :(得分:4)
NPE永远不会有原因,因为当您尝试访问空对象引用时,它们是由JVM生成的。堆栈跟踪应该包含有关它发生的行的信息。
答案 1 :(得分:3)
堆栈跟踪通常非常清楚NullPointerException的原因。你看看它发生的那一行,并观察那里可以为null的东西。没有其他原因(因为这是由NullPointerException包装的另一个异常)。
如果NullPointerException没有堆栈跟踪,那可能会发生并且是一个更难诊断的问题,但如果我理解你的问题并非如此。