巧用例外處理多傳回值問題(補充)

來源:互聯網
上載者:User

部落格連結:巧用例外處理多傳回值問題

上面這篇部落格是以前寫的一篇關於多傳回值問題的部落格,現在看來,文中介紹的方法雖然可以解決多傳回值問題,但是還是有一定的缺陷。以上的方法只能將錯誤資訊反饋給使用者,並不能跟據錯誤資訊做一些操作。就拿登入來說吧,上面的方法只能告訴使用者密碼錯誤、使用者名稱不存在等資訊,並不能跟據密碼錯誤就清空輸入密碼的文字框,或者根據使用者名稱不存在就同時清空輸入使用者名稱和密碼的文字框。這說明以上方法還不夠智能,我們為使用者考慮的還是有點少。那麼,我們該怎麼辦呢?下面我就用自訂異常類來解決這個問題。

 

我還是用上文中那種通俗易懂的語言來給大家介紹吧,下面我就以使用者登入狀態例,所用程式設計語言為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

 

到目前為止,用例外處理多傳回值問題才算是比較完美了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.