刚刚正权童鞋跟我抱怨说我上篇讲异常只有文字,一点例子也没有。那么这篇我就失信一下,先不对比用异常所消耗的时间,在这再给大家卖个关子。
下面我就开始给大家做一个DEMO来说明一下我对异常的使用。
首先要说的是我认为是内容耦合的那个例子,大家请看代码,我尽量简单的说(由于是为了让大家看懂,所以我就用汉语标识我要干什么,大家理解哈,嘻嘻。
业务逻辑层的代码:
Public Function Login() As String
If 用户不存在 Then
Return "用户不存在"
End If
If 密码不正确 Then
Return "密码不正确"
End If
If 登陆成功 Then
Return "登陆成功"
End If
End Function
UI层的代码
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogIN.Click
Select Case BLL.Login()
Case "用户不存在"
执行A计划()
Case "密码不正确"
执行B计划()
Case "登陆成功"
执行C计划()
Case Else
撕票()
End Select
End Sub
这样,UI层就不得不需要去清楚BLL层返回的到底是什么字符串,当然,这样其实也不能说不可以。在文档里面标注清楚也是完全可以的。但是UI层和BLL层的耦合,这就不多说了。
下面看一下这样的代码:
BLL层的代码:
Public Function Login() As Boolean
If 用户不存在 Then
Throw New Exception("用户不存在")
End If
If 密码不正确 Then
Throw New Exception("密码不正确")
End If
If 登陆成功 Then
Throw New Exception("登陆成功")
End If
End Function
UI层的代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogIN.Click
Try
If BLL.Login() Then
登陆成功()
End If
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
End Sub
这样,在UI层只是调用了一下BLL层的代码。以上就是我对于异常的利用,当然,异常还有别的用处,等待大家去发现。
关于异常的利用,我就说到这吧。下篇将继续咱们的话题,进行个异常处理到底能用我们多长时间?