第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

編程規(guī)范問(wèn)題,程序中所有變量,都需要做空指針判斷嗎?

編程規(guī)范問(wèn)題,程序中所有變量,都需要做空指針判斷嗎?

呼啦一陣風(fēng) 2019-03-22 10:15:51
規(guī)范的編程中,程序中的每一個(gè)變量,都需要去if判斷或者try catch去排查空指針嗎,即使在正常邏輯中不會(huì)出現(xiàn)null的地方?菜鳥(niǎo)提問(wèn),求講解。
查看完整描述

2 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

不需要,非必要條件下沒(méi)必要去做,盡早讓其自然拋出nullPointException有助于查找到問(wèn)題。除非是諸如查詢,查不出來(lái)也有可能,這個(gè)時(shí)候盡量做,然后友好拋出異常信息,當(dāng)然,這個(gè)如果是不正常邏輯,也盡量早拋,不要拋null指針而已。

查看完整回答
反對(duì) 回復(fù) 2019-04-19
?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

不是每個(gè)地方都必須要判空的,如果每個(gè)地方都去判斷空,你會(huì)發(fā)現(xiàn)到處都有判空的if...else...語(yǔ)句,這樣代碼會(huì)非常糟糕,也不利于代碼維護(hù)。

如果是處理外部輸入的邏輯,或是對(duì)外服務(wù)的接口的實(shí)現(xiàn)。那么因?yàn)橛肋h(yuǎn)不能外部輸入會(huì)有出現(xiàn)什么意外,為空是很可能的,這個(gè)時(shí)候就一定要處理判空。

如果是內(nèi)部處理的邏輯,比如在一個(gè)類的private方法,通常private方法是為了處理一些公共的邏輯但又不想把邏輯提供出去,這個(gè)時(shí)候就沒(méi)必要去判空。如果空出現(xiàn)空指針,在外層的調(diào)用里catch住就行了,做了判空處理,程序運(yùn)行了半天雖然沒(méi)報(bào)錯(cuò),但是程序卻已經(jīng)進(jìn)入一些意外情況。這樣反而不好。

還有一個(gè)個(gè)人總結(jié)的是否需要判空的依據(jù)是,當(dāng)一個(gè)變量在邏輯上不出意外的情況下不會(huì)為空我就不去做判空。如果在邏輯上很有空能為空那就去做判空,并返回一個(gè)錯(cuò)誤返回,這個(gè)錯(cuò)誤返回很有可能是業(yè)務(wù)上的返回,如果是一個(gè)接口,那么提示輸入字段不合法等等。


查看完整回答
反對(duì) 回復(fù) 2019-04-19
  • 2 回答
  • 0 關(guān)注
  • 936 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)