2017-02-26 43 views
2

正如你可能會或可能不知道的Android技術的虛擬機有一個真棒功能:即他們會告訴你什麼是null如何在桌面JVM上獲得更好的NullPointerException消息?

顯示java.lang.NullPointerException:試圖調用虛擬方法返回值fully.qualified。 ClassName.andMethod(過載)」上的空對象引用
       在net.twisterrob.Test.main(Test.java:19)

比較這對標準Oracle桌面JVM:

在net.twisterrob.Test.main(Test.java:19)在線程異常 「主」 顯示java.lang.NullPointerException
       

我不知道是否有至少在調試時至少在Oracle JDK中啓用此行爲的方式,或者是否存在提供此功能的備用兼容JDK/JVM。

+0

如果有人知道更好的答案,這是抓住;) – TWiStErRob

回答

1

AFAIK,使用Oracle HotSpot Java無法獲得更好的NPE消息。

+0

你也許知道任何其他虛擬機可能有這個? – TWiStErRob

+0

Android VMs,Real Java? AFAIK,沒有。這將是不兼容的行爲,並且很可能導致JTK失敗。 (Android不關心那個.....) –

+0

嗯,這很有趣,我不會想到一個消息會被認爲是,但考慮它的應用程序可能依靠它並解析它。如果它是公開的,你可以鏈接到任何JTK?我找不到它的任何痕跡,只有「Mines Java Toolkit」,我覺得這裏沒有關係。 – TWiStErRob