首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BLL中的验证

BLL中的验证
EN

Stack Overflow用户
提问于 2011-05-23 19:02:11
回答 2查看 450关注 0票数 0

我在某处读到,我应该在我的BLL和UI中执行验证。是这样的吗?我应该如何处理错误/异常?

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

代码语言:javascript
复制
Public Shared Sub DeleteClient(ByVal clientsID As Integer)

        Dim clientDataAccessLayer As New ClientDAO
        clientDataAccessLayer.DeleteClient(clientsID)

End Sub

我已经在检查UI了,如果客户端有任何项目,我不会调用这个sub,但是我应该在这个sub中添加一些验证吗?我应该怎么做?抛出异常还是干脆不让它运行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-23 19:06:42

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

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

票数 1
EN

Stack Overflow用户

发布于 2011-05-23 19:09:19

我在某处读到,我应该在我的BLL和UI中执行验证。是这样的吗?我应该如何处理错误/异常?

您的异常限制应该只在表示层中完成。原因-假设您有Presentatin/DAL/BLL。在实现异常时,到处处理都会导致性能问题。而另一方面,在表示层实现异常处理将导致异常自动出现在调用函数的catch块中

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6096314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档