我正在构建一个数据访问层,它将用于两种类型的应用程序。
不关心错误细节的应用程序。如果发生异常,那么很可能只会被记录下来,而用户可能没有意识到。
示例:简单的条形码盘点应用程序。用户输入条形码,如果数据库连接可用,则系统会提供一些额外信息,如果没有,则仅在本地记录条形码。在这种情况下,我不需要详细的异常处理。
我非常关心异常细节的应用程序。
在构建 DAL 时我必须遵循什么策略才能适应这两个类别?
现在我正在从第一个类别构建一个应用程序,我在 DAL 方法中所做的就是让异常冒泡到表示层,在那里我有几个 try..catch
阻止以便简单地处理日志记录,让用户察觉不到错误。
最佳答案
错误处理就是从代码中已知的部分获取信息给需要知道的人。 DAL 知道如何清晰地打印 SqlException、SqlCommand 和 SqlParameters 集合等的跟踪。但 UI 知道导致异常的整个调用堆栈。用户可能不知道如何处理这些信息,因此您应该登录到单独的 channel ,例如向开发人员发送电子邮件或登录数据库。
如果您正在编写错误记录器,我还建议使用一个真实的应用程序(或几个真实的应用程序)作为您的库的测试。例如,您可以将错误记录器连接到 Codeplex 上的各种应用程序,看看排除错误时的痛点,或者尝试进行测试并使用错误记录器在您自己的库中记录错误。
关于c# - 数据访问层的异常处理策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691769/