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

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

當檢索方法不能生成返回值時,應該返回‘NULL’還是拋出異常?

當檢索方法不能生成返回值時,應該返回‘NULL’還是拋出異常?

當檢索方法不能生成返回值時,應該返回‘NULL’還是拋出異常?我有一個方法,如果找到對象,應該返回它。如果沒有找到,我是否應該:返回空拋出異常其他
查看完整描述

3 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

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

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

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


查看完整回答
反對 回復 2019-07-12
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

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

否則,這是一個優先考慮的問題。


查看完整回答
反對 回復 2019-07-12
?
MM們

TA貢獻1886條經驗 獲得超2個贊

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

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

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

這是很難濫用一個嘗試例行公事。忘記檢查NULL真的很容易。

因此,當NULL是一個錯誤時,只需編寫

object o = FindObject();

當NULL不是錯誤時,可以編寫如下代碼

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


查看完整回答
反對 回復 2019-07-12
  • 3 回答
  • 0 關注
  • 964 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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