为什么Null Pointer Exception对象有一个空原因字段?

时间:2010-02-17 17:28:50

标签: java nullpointerexception

我正在监控某些服务器日志,并且有很多NullPointerExceptions。日志包含堆栈跟踪和来自getCause原因

问题是这些NPE不包含原因。在JavaDocs中,它表示当它不存在或未知(不是非常有用)时,原因为空。

所以我的问题是,有人遇到这些“无根据”的NPE吗?如果是这样,在那种情况下哪个问题呢?我有点迷失在这里,所以任何见解都会受到赞赏。

2 个答案:

答案 0 :(得分:4)

NPE永远不会有原因,因为当您尝试访问空对象引用时,它们是由JVM生成的。堆栈跟踪应该包含有关它发生的行的信息。

答案 1 :(得分:3)

堆栈跟踪通常非常清楚NullPointerException的原因。你看看它发生的那一行,并观察那里可以为null的东西。没有其他原因(因为这是由NullPointerException包装的另一个异常)。

如果NullPointerException没有堆栈跟踪,那可能会发生并且是一个更难诊断的问题,但如果我理解你的问题并非如此。