2011-05-23 40 views
0

我在某处阅读我应该在BLL和UI中执行验证的地方。这是这种情况,我应该如何处理错误/异常?BLL中的验证

我正在创建一个应用程序来管理我们的客户数据。如果客户端没有附加任何项目,用户可以删除客户端。在BLL子如下:

Public Shared Sub DeleteClient(ByVal clientsID As Integer) 

     Dim clientDataAccessLayer As New ClientDAO 
     clientDataAccessLayer.DeleteClient(clientsID) 

End Sub 

我已经检查的UI,而不是调用此子客户端是否有任何项目,但是否也应该这样子中添加一些验证,我应该怎么办它?抛出异常或根本不允许它运行?

回答

1

是的。你应该在这个子(bll)中添加一些验证并抛出一个你的UI应该处理的异常。

这似乎违反了DRY原则(因为您重复逻辑来停止UI上的选项),但业务层应始终保持数据完整性。例如,如果您向应用程序引入不同的UI或Web服务,则数据完整性将保持不变。

+0

谢谢,我会研究如何处理异常,因为我之前没有这样做。 – Westicle 2011-05-23 12:43:14

0

我读的地方,我应该 我BLL进行审定 以及UI。这是什么情况,我应该如何处理错误/异常?

您的例外问题应该只在表示层中完成。 原因 - 假设您有Presentatin/DAL/BLL。在各处实施异常处理都会导致性能问题。另一方面,在表示层执行异常处理将导致异常自动进入调用函数的catch块中

只有在对数据库结果进行验证检查的情况下,验证应该在BLL中进行。