摘要:VB.net中的錯誤處理
在vb.net中,我們可以使用Try & Catch來處理錯誤狀況,
而Try & Catch的基本語法如下:
Try
'要執行的動作
Catch e as Exception
'擷取錯誤並顯示
Response.Write ("錯誤訊息: " & e.toString())
Finally
'不管有沒有錯誤都會執行的,你可以在這作關閉資料庫Connection的動作
End Try
'要執行的動作
Catch e as Exception
'擷取錯誤並顯示
Response.Write ("錯誤訊息: " & e.toString())
Finally
'不管有沒有錯誤都會執行的,你可以在這作關閉資料庫Connection的動作
End Try
如果在要執行的動作中,
有作邏輯的判斷也有作資料庫的操作還有檔案的操作,
假如對於這三部分的錯誤我們希望執行不同的錯誤處理的話,
那是不是需要將他分成三段Try & Catch呢?
答案是不需要的,
只要將程式改成下面這樣,
Try
'要執行的動作
Catch SQLExp as SQLException
'擷取錯誤並顯示
Response.Write ("資料庫存取發生錯誤: " & e.toString())
Catch IOExp as IOException
'擷取錯誤並顯示
Response.Write ("檔案操作發生錯誤: " & e.toString())
Catch e as Exception
'擷取錯誤並顯示
Response.Write ("發生錯誤: " & e.toString())
Finally
'不管有沒有錯誤都會執行的,你可以在這作關閉資料庫Connection的動作
End Try
'要執行的動作
Catch SQLExp as SQLException
'擷取錯誤並顯示
Response.Write ("資料庫存取發生錯誤: " & e.toString())
Catch IOExp as IOException
'擷取錯誤並顯示
Response.Write ("檔案操作發生錯誤: " & e.toString())
Catch e as Exception
'擷取錯誤並顯示
Response.Write ("發生錯誤: " & e.toString())
Finally
'不管有沒有錯誤都會執行的,你可以在這作關閉資料庫Connection的動作
End Try
這樣就可以在發生資料庫錯誤跟IO錯誤時,執行個別的錯誤處理,
而SQLException的class是定義在System.Data.SqlClient的namespaces中,
而IOExpection的class是定義在System.IO的namespaces裡,
而在catch中,你可以下Exit Try強制跳離Try & Catch,
這樣的話後面的Finally是不會被執行的.