我在某处读过我应该在我的BLL和UI中执行验证。是这种情况,我应该如何处理错误/异常?
我正在创建一个应用来管理我们的客户数据。如果客户端没有附加项目,则用户可以删除客户端。 BLL中的子项如下:
Public Shared Sub DeleteClient(ByVal clientsID As Integer)
Dim clientDataAccessLayer As New ClientDAO
clientDataAccessLayer.DeleteClient(clientsID)
End Sub
我已经检查了UI,如果客户端有任何项目,我不会调用此子,但我是否应该在此子项中添加一些验证,我应该怎么做?抛出异常或者根本不允许它运行?
答案 0 :(得分:1)
是肯定的。你应该在这个子(bll)中添加一些验证并抛出你的UI应该处理的异常。
看起来似乎违反了DRY原则(因为您正在重复逻辑以停止UI上的选项),但业务层应始终保持数据完整性。例如,如果您向应用程序引入了不同的UI或Web服务,则数据完整性保持不变。
答案 1 :(得分:0)
我在某处读到了应该是的 在我的BLL中执行验证 以及UI。是这样的,如何 我应该处理错误/异常吗?
您的异常处理应仅在表示层中完成。 原因 - 假设您有Presentatin / DAL / BLL。在任何地方实施异常处理都会导致性能问题。而另一方面,在Presentation层中实现异常处理会导致异常自动出现在调用函数的catch块中
只有在对数据库结果进行验证检查时,验证才应该在BLL中。