Java14中如何增強(qiáng)NPE NullPointerException,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
成都創(chuàng)新互聯(lián)是一家專業(yè)從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)依托的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營(yíng)經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、全網(wǎng)整合營(yíng)銷推廣及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!
改進(jìn) NullPointerExceptions,通過準(zhǔn)確描述哪些變量為 null 來(lái)提高 JVM 生成的異常的可用性。該提案的作者希望為開發(fā)人員和支持人員提供有關(guān)程序?yàn)楹萎惓=K止的有用信息,并通過更清楚地將動(dòng)態(tài)異常與靜態(tài)程序代碼相關(guān)聯(lián)來(lái)提高對(duì)程序的理解。
String name = user.getLocation().getCity().getName();
在Java 14之前,你可能會(huì)得到如下的錯(cuò)誤:
Exception in thread "main" java.lang.NullPointerExceptionat
NullPointerExample.main(NullPointerExample.java:2)
不幸的是,如果在第2行是一個(gè)包含了多個(gè)方法調(diào)用的賦值語(yǔ)句(如getLocation()和getCity()),那么任何一個(gè)都可能會(huì)返回null。實(shí)際上,變量user也可能是null。因此,無(wú)法判斷是誰(shuí)導(dǎo)致了NullPointerException。
在Java 14中,新的JVM特性可以顯示更詳細(xì)的診斷信息:
Exception in thread "main" java.lang.NullPointerException:
Cannot invoke "Location.getCity()"
because the return value of "User.getLocation()" is null
at NullPointerExample.main(NullPointerExample.java:2)
該消息包含兩個(gè)明確的組成部分:
后果:Location.getCity()
無(wú)法被調(diào)用
原因:User.getLocation()
的返回值為null
關(guān)于Java14中如何增強(qiáng)NPE NullPointerException問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。