回答
這取決於。
我是否讓異常冒泡?絕對。但我想要這個連接失敗,命令失敗。無論你做什麼,不要只隱藏這些,你需要了解它們。我更喜歡我的應用程序儘快失敗,以減少副作用和進一步損壞。
我也記錄異常。我使用Log4net來解決這個問題。但我喜歡在源代碼處記錄異常。我會讓他們從那裏冒出來。
返回null?如果找不到任何東西(即通過id查找某個東西並且它不在那裏),那麼我返回null,而不是一個例外。但有些情況下,我發現這種情況發生時會拋出新的異常。
要點:例外應該是「例外」,而不是規則。如果拋出異常,應該是因爲有些事情是錯誤的,你需要修復它。
我通常會讓異常泄漏,但如果我處於特別Enterprisey的情緒中,我會將它們包裝在RepositoryException中以防止客戶端關心底層存儲引擎。
我永遠不會返回false/null而不是異常,因爲這些值背後已經有了一個含義。在極少數情況下,你可能有一個大腦死亡的存儲引擎,它會在非例外情況下產生異常 - 我會捕獲那些具體的異常並在適當的情況下返回null(例如,如果行不存在,但是存儲引擎在這種情況下拋出一個錯誤 - 我會捕獲它並返回null)。
是的,我和你一起只會發現與非例外情況有關的錯誤。我想到,如果我在存儲庫中捕獲異常並返回false,我所做的只是強迫自己記住將錯誤捕獲到存儲庫之外,最終在用戶體驗中最終會達到同樣的效果。 (假設我正在捕捉錯誤並優雅地失敗) – 2009-05-21 20:19:31
- 1. PHP異常,如何處理它們
- 2. 你如何處理特殊情況下
- 3. 捕捉內部JSF異常並自行處理它們
- 4. 庫中的異常處理
- 5. C#忽略未處理的異常的情況下
- 6. 異常Scala的未來處理失敗的情況下
- 7. 如何處理未處理的異常?
- 8. 異常處理的開關情況 - Android電子
- 9. 這種情況的異常處理模式?
- 10. 我想在re.match的情況下,處理異常返回null
- 11. 你如何在你的倉庫中處理文檔,圖像(psd)等?
- 12. 什麼時候閃避異常和何時處理它們
- 13. 處理在倉庫
- 14. 如何處理異常處理代碼中的異常?
- 15. 你如何組織你的git倉庫?
- 16. 你如何構建你的SVN倉庫?
- 17. 如何在node.js庫中處理未處理的異常
- 18. 如何在沒有嵌套異常的情況下處理python中的文件
- 19. 處理內存異常
- 20. 純C異常處理庫
- 21. 處理數據庫異常
- 22. 處理異常情況發生時,使用了HTTP服務
- 23. 用幾個catch塊處理SOAP異常情況
- 24. 在這種情況下使用異常處理是否好?
- 25. Python中的變量和異常處理 - 它們混合嗎?
- 26. 如何處理GitHub倉庫不再維護的內容?
- 27. 如果任何異常情況發生
- 28. 如何處理一個Git倉庫
- 29. 如何處理REST異常?
- 30. 如何處理PDO異常
我認爲您的主要觀點非常有效。 +1 – 2009-05-21 20:16:56