部落格連結:巧用例外處理多傳回值問題
上面這篇部落格是以前寫的一篇關於多傳回值問題的部落格,現在看來,文中介紹的方法雖然可以解決多傳回值問題,但是還是有一定的缺陷。以上的方法只能將錯誤資訊反饋給使用者,並不能跟據錯誤資訊做一些操作。就拿登入來說吧,上面的方法只能告訴使用者密碼錯誤、使用者名稱不存在等資訊,並不能跟據密碼錯誤就清空輸入密碼的文字框,或者根據使用者名稱不存在就同時清空輸入使用者名稱和密碼的文字框。這說明以上方法還不夠智能,我們為使用者考慮的還是有點少。那麼,我們該怎麼辦呢?下面我就用自訂異常類來解決這個問題。
我還是用上文中那種通俗易懂的語言來給大家介紹吧,下面我就以使用者登入狀態例,所用程式設計語言為VB.NET。
首先,我們自訂一個異常類。注意:自訂的異常類必須繼承ApplicationException類
''' <summary>''' 密碼錯誤''' </summary>''' <remarks></remarks>Public Class WrongPasswordException : Inherits ApplicationException Public Sub New() MyBase.New() End Sub Public Sub New(ByVal message As String) MyBase.New(message) End Sub Public Sub New(ByVal message As String, ByVal innerEx As Exception) MyBase.New(message, innerEx) End SubEnd Class
然後,登入函數部分:
If 密碼錯誤 Then
Throw New WrongPasswordException("密碼錯誤")
End If
……
……
……
最後,調用登入函數部分:
Try
調用登入函數
Catch ex AS WrongPasswordException
MsgBox(ex.Message) 註:告訴使用者密碼錯誤
清空密碼文字框 註:根據具體錯誤執行不同的操作
Catch ex AS Exception
MsgBox(“未知錯誤導致使用者登入失敗”)
End Try
到目前為止,用例外處理多傳回值問題才算是比較完美了。