VB.NET之錯誤異常處理

    相對於VB而言,VB.NET中引入了不少特點。當中最吸引個人就是引入告終構化異常處理。編程

儘管VB.NET仍然支持OnError Goto類型的異常處理,但是這樣作並不是很是好。相比而言,結構化異常處理更加靈活,使用更加方便。咱們應該充分利用VB.NET提供的結構化異常處理。安全

    在VB.NET結構中的異常處理分爲3個語句塊。函數

   (1try塊負責錯誤代碼的捕獲spa

   (2catch進行錯誤的處理code

   (3finally負責錯誤處理後的興許工做如:釋放對象、清理資源等的工做。orm

    使用這些區塊的目的是贊成執行Try模塊中被保護的代碼,對catch,對catch區塊中可能分不論什麼錯誤作出反應。並且在隨後的Finally塊中還有清理代碼。無論Try代碼塊是否有發生錯誤,Finally塊的代碼都會被執行到,這樣可以很是方便的保證分配的資源會被釋放,並且可以方便地提供那些不論錯誤控制細節怎樣,都需要被執行的各類功能的函數。但是,Catch語句塊不必定執行,假設Try塊內的代碼沒有錯誤,沒有拋出異常的話,Catch語句塊中的代碼是不執行的。而是跳過Catch塊直接執行Finally塊中的清理工做。對象

反之假設遇到了異常Catch語句塊中的處理工做就要進行。blog

    如下舉個實例:ip

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim file As System.IO.FileStream, msg As String
        Try
            file = New System.IO.FileStream("D:\readme.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read)
            file.Close()
        Catch ex As Exception
            msg = String.Format("{0}ralsed exception :{1}", ex.Source, ex.Message)
            MessageBox.Show(msg, "My App", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            If Not file Is Nothing Then file.Close()
        End Try
    End Sub
      這個樣例是在 D盤找到一個readme.txt文檔。假設咱們在D盤中沒有創建這個文檔,那麼就會運行Catch語句,會彈出出錯的來源和緣由:

    

    假設咱們在D盤創建一個readme.txt文檔。那麼就不會有發生錯誤,那麼不會運行Catch語句。跳到Finally中運行。資源

    在現在,開發者常常忽視了組織有序。考慮周到的異常處理的重要性,常常致使用戶的不便和失敗。

咱們未來假設要作合格的開發者,異常處理對咱們來講是相當重要的。

是.NET平臺重要的安全機制,將錯誤代碼的接受和處理的進行了完美的分離。理清了編程者的思緒,也幫助代碼加強了可讀性,方便了維護者的閱讀和理解,而且還提供了處理程序執行時出現的不論什麼意外或異常狀況的方法。

相關文章
相關標籤/搜索