亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

編程規范問題,程序中所有變量,都需要做空指針判斷嗎?

編程規范問題,程序中所有變量,都需要做空指針判斷嗎?

呼啦一陣風 2019-03-22 10:15:51
規范的編程中,程序中的每一個變量,都需要去if判斷或者try catch去排查空指針嗎,即使在正常邏輯中不會出現null的地方?菜鳥提問,求講解。
查看完整描述

2 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

不需要,非必要條件下沒必要去做,盡早讓其自然拋出nullPointException有助于查找到問題。除非是諸如查詢,查不出來也有可能,這個時候盡量做,然后友好拋出異常信息,當然,這個如果是不正常邏輯,也盡量早拋,不要拋null指針而已。

查看完整回答
反對 回復 2019-04-19
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

不是每個地方都必須要判空的,如果每個地方都去判斷空,你會發現到處都有判空的if...else...語句,這樣代碼會非常糟糕,也不利于代碼維護。

如果是處理外部輸入的邏輯,或是對外服務的接口的實現。那么因為永遠不能外部輸入會有出現什么意外,為空是很可能的,這個時候就一定要處理判空。

如果是內部處理的邏輯,比如在一個類的private方法,通常private方法是為了處理一些公共的邏輯但又不想把邏輯提供出去,這個時候就沒必要去判空。如果空出現空指針,在外層的調用里catch住就行了,做了判空處理,程序運行了半天雖然沒報錯,但是程序卻已經進入一些意外情況。這樣反而不好。

還有一個個人總結的是否需要判空的依據是,當一個變量在邏輯上不出意外的情況下不會為空我就不去做判空。如果在邏輯上很有空能為空那就去做判空,并返回一個錯誤返回,這個錯誤返回很有可能是業務上的返回,如果是一個接口,那么提示輸入字段不合法等等。


查看完整回答
反對 回復 2019-04-19
  • 2 回答
  • 0 關注
  • 937 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號