回答
这取决于。
我是否让异常冒泡?绝对。但我想要这个连接失败,命令失败。无论你做什么,不要只隐藏这些,你需要了解它们。我更喜欢我的应用程序尽快失败,以减少副作用和进一步损坏。
我也记录异常。我使用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