這是我在vb.net上的第一個項目,我現在正努力將vba工作添加到vb.net COM加載項。我認爲我有點不舒服,但是錯誤處理讓我感到困惑。VB .NET錯誤處理,給調用者傳遞錯誤
這是一個測試,我一直在使用,以瞭解在try-catch以及如何通過例外呼叫者
Public Sub test()
Dim ActWkSh As Excel.Worksheet
Dim ActRng As Excel.Range
Dim ActCll As Excel.Range
Dim sVar01 As String
Dim iVar01 As Integer
Dim sVar02 As String
Dim iVar02 As Integer
Dim objVar01 As Object
ActWkSh = Me.Application.ActiveSheet
ActRng = Me.Application.Selection
ActCll = Me.Application.ActiveCell
iVar01 = iVar02 = 1
sVar01 = CStr(ActCll.Value)
sVar02 = CStr(ActCll.Offset(1, 0).Value)
Try
objVar01 = GetValuesV(sVar01, sVar02)
'DO SOMETHING HERE
Catch ex As Exception
MsgBox("ERROR: " + ex.Message)
'LOG ERROR SOMEWHERE
Finally
MsgBox("DONE!")
End Try
End Sub
Private Function GetValuesV(ByVal QryStr As Object, ByVal qryConn As String) As Object
Dim cnn As Object
Dim rs As Object
Try
cnn = CreateObject("ADODB.Connection")
cnn.Open(qryConn)
rs = CreateObject("ADODB.recordset")
rs = cnn.Execute(QryStr)
If rs.EOF = False Then
GetValuesV = rs.GetRows
Else
Throw New System.Exception("Query Return Empty Set")
End If
Catch ex As Exception
Throw ex
Finally
rs.Close()
cnn.Close()
End Try
End Function
我想有錯誤消息來測試,但 MSGBOX( 「ERRORE:」+ ex.Message) 彈出一些意想不到的事情(Object variable或With block variable not set) 我在這裏做錯了什麼? 感謝 d
您期待什麼錯誤?你試圖抓住什麼(錯誤的)行爲? – varocarbas
打開CLR異常 - 調試 - >異常並檢查公共語言運行時異常(引發)。這應該在錯誤時打破。 –
我的想法是在消息箱中獲取完整的錯誤消息,以便它可以記錄在文件(或工作表)中。錯誤是我沒有得到定製的錯誤或任何其他錯誤,我通過語法錯誤的查詢或連接字符串中的拼寫錯誤觸發。我得到了「對象變量..」的東西。 – user1375452