为什么stacktrace会指向Java中的右括号?

时间:2017-04-06 16:20:24

标签: java debugging

如果在Java的结束括号中获得NullPointerException,这意味着什么?比方说,例如,右here

    SavedState() {
        this.iZone = DateTimeParserBucket.this.iZone;
        this.iOffset = DateTimeParserBucket.this.iOffset;
        this.iSavedFields = DateTimeParserBucket.this.iSavedFields;
        this.iSavedFieldsCount = DateTimeParserBucket.this.iSavedFieldsCount;
    } <-- Stack trace says NPE is thrown here

这是在堆栈跟踪中:

...
Caused by: java.lang.NullPointerException
    at org.joda.time.format.DateTimeParserBucket$SavedState.<init>(DateTimeParserBucket.java:521) ~[joda-time-2.9.5.jar:2.9.5]
...

1 个答案:

答案 0 :(得分:5)

唯一的原因(除非事情非常破坏),如果源和正在运行的代码不同步,它将指向一个大括号。清理,重新运行并再次查看堆栈跟踪。

在这种情况下,由于堆栈跟踪来自joda-time,你可能正在查看错误版本库的源代码。确保您查看版本2.9.5的来源。