什麼你要找的是try/catch/finally結構。這允許您捕獲異常(錯誤)並對其做出反應。現在
Protected Function GetConnection() As SqlConnection
Dim ret_conn As SqlConnection
Try
ret_conn = New SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("EUCNET00617").ToString())
ret_conn.Open()
GetConnection = ret_conn
Catch exceptionThatICaught as System.Exception
' You could also perform logging of details from exceptionThatICaught here
GetConnection = Null
End Try
End Function
,你GetConnection
函數將返回Null
當它是無法創建並打開一個連接,這意味着調用代碼,它可以反應到連接返回被空,而不是崩潰。
您可能已經注意到,我把在Catch
塊中的例外是System.Exception
,通常趕上這樣的通用(所有異常是從System.Exception
派生)會被認爲是不好的形式,因爲它意味着你要照顧任何東西發生時不知道發生了什麼。這只是一個例子給你看雖然=)
它總是值得檢討你包裝一下你試試功能的MSDN文檔頁/左右趕上像他們有些人名單「預期」的(但不是所有)如果您有處理該失敗案例的方法,則可能會拋出的異常可以被認爲是catch
。在這種情況下,要查看的頁面將是:
爲SqlConnection.Open
列出兩個例外,它可以拋出,InvalidOperationException
和SqlException
的文檔。我強烈建議您查看該文檔,以便決定「做什麼」和「捕獲」哪種異常類型,您認爲適合您這樣做。
來源
2011-02-11 13:10:40
Rob
你有沒有讀到「在try..catch」塊?!? http://msdn.microsoft.com/en-us/library/fk6t46tz%28v=VS.90%29.aspx – BertuPG 2011-02-11 12:58:29