我認爲這是一個簡單而重要的問題。Java:通過布爾錯誤,空指針或異常傳遞錯誤?
我寫一個類的函數:
public MyClass myFunction(MyClass mc) { ... }
在這個函數,它改變了MC的一些狀態,然後返回。我知道這是沒有必要的,因爲MC是在變化。我想返回MyClass的原因是使用null來表示失敗的更新。
我可能會改變返回類型爲布爾值,並利用虛假指示錯誤:
public boolean myFunction(MyClass mc) { ... }
不過,我記得我曾經看過一篇文章相當長的時間以前說這是不是一個好的做法(雖然我忘記了細節和原因)。
我當然可以使用異常來表示錯誤:
public void myFunction(MyClass mc) throws MyException { ... }
但我得到一個感覺,這是太重加權。
我個人的看法是,如果錯誤是有意義的全系統,然後異常應該被使用。如果錯誤僅對調用者和函數有意義,則不應使用異常。但是在這種情況下,我應該使用null還是false來表示錯誤?
什麼是你認爲最好的做法是什麼?請讓我知道你的意見。
非常感謝。
的'最大的痛苦File'的設計是當你把幾個這樣的呼叫串在一起,並且哪個失敗時,都沒有意義繼續下去。作者應該真的關心這個問題:它會讓我在需要將'if(!action)throw SomeException'中的每個動作都包裝起來的地方編寫godawful代碼嗎? – 2012-04-22 18:48:54