我很努力去理解我應該如何設計我的代碼的錯誤處理部分。我最近問了一個類似的問題,我應該怎麼去returning server error codes to the user, eg. 404 errors。我瞭解到,我應該在應用程序的當前部分內處理錯誤;看起來很簡單。我應該如何處理預期的錯誤?例如。 「用戶名已存在」
但是,我該怎麼辦時,我無法從鏈當前的鏈接處理錯誤?例如,我可能有一個用於管理身份驗證的類。其中一種方法可能是createUser($username, $password)
。 編輯:此方法將返回用戶標識或用戶對象。在該函數中,我需要確定用戶名是否已經存在。如果這是真的,我應該如何提醒調用代碼呢?返回null而不是用戶對象是一種方法。但是,我怎麼知道是什麼導致了錯誤?
我應該如何在這樣一種方式,調用代碼可以很容易地找出導致錯誤處理錯誤?有這種情況下常用的設計模式嗎?
編輯:我忘了提及:我正在使用PHP。
解決:雖然很多人認爲,例外不應在這種情況下使用,我得出的結論是,這是最好的解決方案。首先,沒有簡單,優雅的例外替代方案。 (我認爲,如果沒有內置語言的系統,內置的系統是不可能的......異常已經內置。)
其次,對於「異常應該只用於例外情況,而且這不是「參數:"When I call getFoo(), I actually expect to get a Foo. If I don't get it, it's by definition an exceptional event."(經由pkainulainen)
請問您可以詳細說明「設置錯誤對象」的含義嗎?謝謝! – 2010-05-11 20:37:27
在這三種情況下,異常似乎幾乎都是爲了處理問題中所描述的情況而設計的。您可以根據異常的類別和消息選擇如何處理每個例外事件。 – AndreiM 2010-05-11 20:41:55
@tehblanx - 我想我不同意。 'createUser'應該在成功時返回'true',否則返回'false'。理想情況下,這將全部在班級中處理,班級本身可以處理由於註冊失敗而引起的問題。 – thetaiko 2010-05-11 21:33:36