【发布时间】:2009-07-22 21:05:39
【问题描述】:
我一直想知道为什么当抛出NullPointerException 时JVM 不告诉你哪个 指针(或更准确地说,哪个变量)为空。
行号不够具体,因为违规行通常包含许多可能导致错误的变量。
是否有任何编译器或 JVM 标志可以使这些异常消息更有用?
【问题讨论】:
-
在我作为一名专业的 Java 开发人员 8 年多的时间里,这对我来说真的从来没有成为问题。如果您在一行中有很多可能为空的引用,则可能是时候将其分成多行了。
-
@mattc,您从不使用其他人的库代码?
-
@MattC:当您需要在长 if-else-if 块中间的条件中调用具有多个参数的函数时,通常会出现这种情况。将它分成多行意味着在
if的顶部之前向上声明一堆虚拟变量。我会说,在大多数情况下,这在代码可读性和样式方面会更有问题。 -
我就同一问题提出了类似的如何调试问题,但最终被说服以一种不会引发 NPE 的方式编写我的代码。见*.com/questions/410890/…
标签: java debugging nullpointerexception