如何在应用程序中处理数据库异常?
您是在尝试在将数据传递给DB之前验证数据还是仅仅依赖于数据库模式验证逻辑?
您是否尝试从某种DB错误中恢复(例如超时)?
以下是一些方法:
你用什么方法?为什么?
更新:
我很高兴看到越来越多的讨论.
让我们试着总结一下社区的答案.
建议:
你有什么要说的吗?这将转换为验证特定问题.我们缺少核心,即"数据库相关的错误最佳实践",哪些要处理,哪些要冒泡?
我有这种格式
asp.net MVC视图 - >服务层 - >存储库.
因此视图调用服务层,该服务层中包含业务/验证逻辑,而后者又调用存储库.
现在我的服务层方法通常有一个bool返回类型,所以如果数据库查询已经完成,我可以返回true.或者如果失败了.然后向用户显示通用消息.
我当然会用elmah记录错误.但是我不确定我应该怎么做到这一点.
就像现在我的Repository有更新,创建,删除的void返回类型.
所以说如果更新失败,我应该在我的存储库中有一个try/catch引发错误,然后我的服务层捕获它并执行elmah信令并返回false?
或者我应该让这些存储库方法返回"bool",尝试/捕获存储库中的错误,然后将"true"或"false"返回到服务层,然后又向视图返回"true"或"false"?
异常处理仍然让我感到困惑的是如何处理错误以及何时抛出以及何时捕获错误.