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

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

當(dāng)檢索方法不能生成返回值時,應(yīng)該返回‘NULL’還是拋出異常?

當(dāng)檢索方法不能生成返回值時,應(yīng)該返回‘NULL’還是拋出異常?

白衣染霜花 2019-08-03 03:03:07
當(dāng)檢索方法不能生成返回值時,應(yīng)該返回‘NULL’還是拋出異常?我有一個方法,如果找到對象,應(yīng)該返回它。如果沒有找到,我是否應(yīng)該:返回空拋出異常其他
查看完整描述

3 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗 獲得超4個贊

如果您總是期望找到一個值,那么如果它丟失了,那么拋出異常。這一例外將意味著存在一個問題。

如果值可能丟失或存在,并且兩者對應(yīng)用程序邏輯都有效,則返回一個NULL。

更重要的是:您在代碼中的其他位置做什么?一致性很重要。


查看完整回答
反對 回復(fù) 2019-08-05
?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗 獲得超7個贊


只有當(dāng)異常確實是錯誤時才拋出異常。如果預(yù)期對象的行為不存在,則返回NULL。

否則,這是一個優(yōu)先考慮的問題。



查看完整回答
反對 回復(fù) 2019-08-05
?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗 獲得超6個贊

如果NULL從不表示錯誤,那么只需返回NULL。

如果NULL總是一個錯誤,那么拋出一個異常。

如果NULL有時是一個異常,那么就編寫兩個例程。一個例程拋出一個異常,另一個例程是一個布爾測試?yán)?,它在輸出參?shù)中返回對象,如果找不到該對象,則該例程返回一個false。

這是很難濫用一個嘗試?yán)泄?。忘記檢查NULL真的很容易。

因此,當(dāng)NULL是一個錯誤時,只需編寫

object o = FindObject();

當(dāng)NULL不是錯誤時,可以編寫如下代碼

if (TryFindObject(out object o)
  // Do something with o
else
  // o was not found




查看完整回答
反對 回復(fù) 2019-08-05
  • 3 回答
  • 0 關(guān)注
  • 402 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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