域或业务逻辑层 (Vb.Net) 中的错误处理

Posted

技术标签:

【中文标题】域或业务逻辑层 (Vb.Net) 中的错误处理【英文标题】:Error Handling in Domain or Business Logic Layer (Vb.Net) 【发布时间】:2015-04-20 18:23:07 【问题描述】:

我正在为我的 ASP.net 项目使用 3 层。我在数据库“PaymentTypes”中有一个表,我在列 PaymentTypeEN 上设置了检查约束,因此用户不会在此列中输入重复的值。 我的域层 (VB.net) 中有代码。

_

Public Function PaymentTypes_DML(ByVal PaymentTypeID As Long?, ByVal PaymentTypeEN As String, ByVal PaymentType As String, _
ByVal UserID As Long?, ByVal ActionCode As String) As Long
Dim iPaymentTypeID As Long? = PaymentTypeID
Dim sPaymentTypeEN As String = PaymentTypeEN
Dim sPaymentType As String = PaymentType
Dim iUserID As Long? = UserID
Dim sActionCode As String = ActionCode
Dim result As Long
result = CLng(PaymentTypesAdapter.DML(iPaymentTypeID, sPaymentTypeEN, sPaymentType, iUserID, sActionCode))
Return result
End Function

当用户在“PaymentTypeEN”列中输入重复记录时,在表示层(ASP.net 表单)上没有发生什么,ASP.net 页面显示丑陋的错误…………我想通过显示来处理这些错误在这种情况下,用户会收到一些预定义的消息……比如……“您不能输入重复的值,请输入其他值。”…………………….我如何处理域层或演示中的错误ObjectDataSource 层。

【问题讨论】:

【参考方案1】:

验证通常需要在多个层次上重复。将其主要放在业务层中具有很大的优势。这允许 ui 中的验证使用业务逻辑进行独立于 DAO 层的验证。

这确实意味着您的检查约束可能无关紧要,因为无论如何您都必须在业务层中复制它的功能。

您可能必须创建一个调用数据层的 validate() 方法,使用相关的 PaymentTypeEN 搜索其他记录。

【讨论】:

以上是关于域或业务逻辑层 (Vb.Net) 中的错误处理的主要内容,如果未能解决你的问题,请参考以下文章

.net:在业务层引入匿名类型?

使用三层架构处理业务

使用分层实现业务处理

三层架构详解

三层架构详解

三层架构之业务层逻辑层