如何处理应用程序中的数据库异常?
您是否在将数据传递给数据库之前验证数据,还是仅仅依靠数据库模式验证逻辑?
您是否尝试从某种数据库错误中恢复(例如超时)?数据库异常处理最佳实践
这里有一些方法:
- 验证传递到DB
- 左验证,数据库和处理DB异常正常
- 验证两侧
- 验证一些明显的制约业务之前数据逻辑并将复杂验证留给DB
您使用什么方法?为什么?
更新:
我很高兴看到越来越多的讨论。
让我们试着总结社区答案。
建议:
- 验证两侧 上 客户端
- 检查业务逻辑的约束,让DB做完整性检查from hamishmcn
- 检查早期以免打扰DB from ajmastrean
- 检查早改善用户体验from Will
- 保持数据库交互代码到位 简化开发from hamishmcn
- 对象关系映射(NHibernate的,LINQ的,等等)可以帮助你处理约束from ajmastrean
- 客户端验证是必要的安全原因from Seb Nilsson
你还有什么说?这被转换为验证具体问题。我们错过了核心,即“与数据库相关的错误最佳实践”,哪些需要处理哪些以及哪些需要泡泡?
[@hamishmcn](http://stackoverflow.com/questions/39371/database-exception-handling-best-practices#39406)。好点,在业务逻辑层进行验证的一个原因是创建用户友好的用户界面。但在多个地方进行这些验证会打破DRY原则。你如何设法保持数据库和客户端验证同步? – aku 2008-09-02 12:50:11