0
我只是想確認一下嵌套try-catch塊的邏輯:在執行交易前如果數據庫連接失敗嵌套嘗試捕捉邏輯
Try
Using dbConn As New SqlConnection With {.ConnectionString = strConnStr}
dbConn.Open()
'Prepare transaction
Try
' Execute transaction
Catch ex As Exception
Try
' Transaction rollback
Catch ex2 As SqlException
' ...
End Try
Finally
dbConn.Dispose()
End Try
End Using
Catch ex As Exception
' ...
End Try
(第二try-catch塊),這個異常將被第一個catch塊捕獲,並且不再繼續進行下去了嗎?
嵌套Try-Catch塊中是否存在這種情況,異常是否包含在它們自己的try-catch塊中?即:如果事務執行失敗,它會調用第二個catch塊(它啓動回滾),但它不會調用第一個catch塊是?同樣,如果發生事務回滾,它只會調用其相應的catch塊而不是前兩個?
只要它們匹配由Catch行定義的異常類型,異常就不會冒泡。如果需要的話,您可以重新拋出catch塊內的錯誤來泡泡它。故意破壞您的連接字符串應該說明發生了什麼(以及斷點)。 – MrGadget