2011-10-16 37 views
3

我有一个多层应用程序。 DAL - > BAL - >企业网关 - >用户界面。 如果在DAL中发生外键或唯一约束异常,我们应该如何识别出哪个异常以及向用户显示的错误消息。我们是否应该使用错误号码来识别这个。应该怎样处理sql异常?

第二个问题:我们应该如何将这个错误传播给UI。我们正在考虑将此异常抛出到BAL,并且BAL会封装错误并向UI返回响应(不是例外)。这是正确的做法吗?

回答

3

DAL异常应该由BAL处理并重新抛出(作为自定义异常)。您应该通过您使用的通信渠道序列化并发送到您的用户界面。

您不需要向用户显示确切的错误或错误编号,因为这会形成不好的用户体验。你可以告诉他们你不能在db中执行操作。您可以在某些日志文件或Windows事件日志中记录详细信息。

编辑: SqlException有错误代码,您可以在DAL中检查,然后抛出基于该错误的特定异常。您的DAL将SQL Server抽象为后端存储,因此SqlExceptions不应泄漏到DAL之外。因此在DAL中检查ErrorCode并抛出一个特定的异常。

+0

如何识别异常? –

+0

@ShantanuGupta阅读更新的答案 –