日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

程序中抛出空指针异常_从Java应用程序中消除空指针异常

發(fā)布時(shí)間:2023/12/3 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 程序中抛出空指针异常_从Java应用程序中消除空指针异常 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

程序中拋出空指針異常

這篇文章簡要介紹了Java 8的最有用但又“毫不夸張”的功能。

程序員花費(fèi)了無盡的時(shí)間來糾正最常見但最危險(xiǎn)的錯(cuò)誤之一,即Null指針異常。

空指針異常會(huì)導(dǎo)致我們的應(yīng)用程序意外中斷,并且很難預(yù)先檢測到。

在許多情況下,當(dāng)我們使用外部庫和API時(shí),空指針可能由于庫/ API返回的值而出現(xiàn)。

由于這個(gè)原因,異常處理和從異常中進(jìn)行邏輯恢復(fù)對于程序員來說是一項(xiàng)復(fù)雜的任務(wù)。

這需要高級程序員來檢查代碼,并定義控制流以進(jìn)行錯(cuò)誤恢復(fù)。

在Java 8中,添加了一個(gè)新的API –即“ Optional ”類,以幫助開發(fā)人員創(chuàng)建一個(gè)框架,以完全避免使用空指針,并為其應(yīng)用程序定義第一級異常恢復(fù)策略。

明確地說–

Optional API提供了一個(gè)容器類,該容器類可用于包裝方法調(diào)用的返回值-即使它們包含“ null”值。

它還提供了API,使程序員能夠定義默認(rèn)值,以便在遇到“ null”時(shí)返回。 這迫使開發(fā)人員在編碼時(shí)考慮針對空值的緩解策略。

空檢查可以通過兩種方式執(zhí)行–通過“ isPresent”和“ ifPresent”方法。

當(dāng)我們調(diào)用“ isPresent ”時(shí),如果存在非null值,則將返回“ true”。

另一方面,除了只檢查該值是否為非null之外,如果我們希望將控制流委托給同一API調(diào)用中的另一個(gè)類,則可以使用“ ifPresent”方法。

此方法采用類型為“ Consumer ”的參數(shù)-本質(zhì)上是一個(gè)功能接口。 該接口可以由您的應(yīng)用程序中的類實(shí)現(xiàn)。

每當(dāng)調(diào)用“ ifPresent ”時(shí),我們都必須傳遞Consumer接口的實(shí)現(xiàn),以便可以自動(dòng)完成控制流委派。

從開發(fā)人員的角度來看–消費(fèi)者的實(shí)現(xiàn)可以定義當(dāng)存在非null值時(shí)要采取的措施。

此類還具有其他有用的功能,程序員可以使用這些功能來避免樣板代碼。

過濾器函數(shù)接受Predicate類型的參數(shù)。 如果返回值與謂詞匹配,則返回過濾后的值,否則返回空的Optional對象。

在相似的行上,我們還有其他函數(shù)可以用來組織返回值。 考慮地圖功能和平面 地圖功能。

這兩個(gè)函數(shù)均用于為返回值(如果存在)創(chuàng)建鍵-值對映射。

開發(fā)人員還可以根據(jù)邏輯標(biāo)準(zhǔn)的評估來定義返回值。

例如,考慮以下功能–

如果返回值為null,則orElse函數(shù)將在參數(shù)中返回提供的值

orElseGet返回值(如果存在)。 否則,如果不存在,它將調(diào)用Supplier類型的參數(shù)以返回自定義值。

orElseThrow啟用對異常處理的精細(xì)控制。 如果不存在返回值,則可以引發(fā)自定義異常,或者可以將控制的飛行委托給Supplier類型-這又可以決定要拋出的異常。

總之,使用此API –我們可以在整個(gè)軟件開發(fā)生命周期中受益

軟件架構(gòu)師可以通過標(biāo)準(zhǔn)化異常處理來減少代碼審查周期。

QA工程師將報(bào)告較少的由空指針異常引起的錯(cuò)誤。

軟件設(shè)計(jì)人員可以預(yù)先考慮其異常處理邏輯,避免以后再進(jìn)行愚蠢的修補(bǔ)。

開發(fā)人員最終將編寫更有效的代碼,從而縮短上市時(shí)間。

翻譯自: https://www.javacodegeeks.com/2019/04/eliminating-pointer-exceptions-java-applications.html

程序中拋出空指針異常

總結(jié)

以上是生活随笔為你收集整理的程序中抛出空指针异常_从Java应用程序中消除空指针异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。