Re: [問題] Return值是void的使用時機....

看板C_and_CPP作者 (我要加入劍道社!)時間15年前 (2011/01/03 15:16), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串3/5 (看更多)
※ 引述《QQ29 (我愛阿蓉)》之銘言: : 第一個先check pointer是不是null : 再來包個try catch : 呼叫一些API去做我想做的事情 : try 做完 Return E_SUCCESS : 若是catch到就印個log 或return error code : 根本沒有可以單純就return;的case阿 我好奇一件事 如果你們已經用 exception 來處理 error 那為什麼還要 return error code? 莫非你們呼叫了會使用 exception 的 library 但自己寫的程式碼還在用 error code? (雖然有時候不得不做這種蠢事...但能免則免吧) : 就算基本的save to file : 都有可能吐Exception : 上面使用者也必須要知道有沒存成功 : 所以說 到底什麼時候是真的可以大膽寫成void? 統一用 exception 那你就可以大膽寫 void 了 caller 要知道成不成功,就請他自己去try/catch : 另外try catch是不是只要document寫說這API有可能吐exception就必須去夾一下? : 謝謝 當然不是 如果你知道錯誤要怎麼處理,那就要 catch 你不知道怎麼處理的話,就不要 catch 讓 exception 往上傳遞 (不過有時候你需要 catch and rethrow 以避免資源洩露的問題) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.15.163 ※ 編輯: littleshan 來自: 114.32.15.163 (01/03 15:17)

01/03 16:54, , 1F
淚推第一段,公司的code也是吞了例外之後回傳error code
01/03 16:54, 1F

01/04 07:32, , 2F
淚推第一段 Orz
01/04 07:32, 2F
文章代碼(AID): #1D8NUpSU (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1D8NUpSU (C_and_CPP)