【发布时间】:2015-07-18 16:41:03
【问题描述】:
我阅读了很多教程并看到了很多关于Repository 模式实现的代码示例。在几乎所有情况下,在数据库不可用时尝试访问数据库所导致的异常都没有得到解决。考虑到如果数据库位于网络上的某个地方,这是一个非常现实的场景,这似乎很奇怪。
那么处理这些异常的最佳做法是什么?
将这一百个调用中的每一个都包装在一个 try/catch 中,每个调用都可能有 相同的 n 个捕获块?这是很多重复、混乱、容易出错等。
让异常冒泡到应用程序级别并将它们捕获为 未处理的异常?如果在 UI 线程上引发异常,这是有道理的,否则,处理未处理的 AppDomain 异常会导致应用程序关闭。
使用 Enterprise Library 的 Exception 等框架 处理应用程序块?
【问题讨论】:
-
许多错误无法在存储库级别重试。例如死锁、超时、网络错误必须在可以跨越多个 repo 操作的事务级别重试。
标签: architecture exception-handling repository-pattern