【发布时间】:2012-11-21 10:07:10
【问题描述】:
我正在构建一个数据访问层,它将用于两种类型的应用程序。
-
不关心错误细节的应用程序。如果发生异常,那么很可能只是被记录下来,而用户可能没有意识到这一点。
示例:简单的条码盘点应用。用户输入条形码,如果数据库连接可用,则系统提供一些额外信息,如果没有,则仅在本地记录条形码。在这种情况下,我不想要详细的异常处理。
-
我非常关心异常细节的应用程序。
在构建我的 DAL 以适应这两个类别时,我必须遵循什么策略?
现在我正在从第一类构建一个应用程序,我在 DAL 方法中所做的只是让异常冒泡到表示层,在那里我有几个 try..catch 块以简化处理日志记录,让用户不知道他的错误。
【问题讨论】:
-
您的 DAL 不应该关心它是如何被使用的。让它抛出有意义的异常,让你的消费层/应用程序处理它们认为合适的方式。听起来你使用的策略已经考虑到了这一点,所以我认为你不需要改变任何东西。
-
避免使用异常来控制程序流程。使用它们来指示未预料到的异常情况。这意味着您的 DAL 将决定何时在连接可用时保留数据。
-
@EliGassert:这意味着演示中的多个 try catch 块或制作某种自定义异常处理类... MushinNoShin:在某些情况下数据将永远不可用(例如,如果 3G 网络出现故障和平板电脑无法连接)
标签: c# .net exception-handling data-access-layer