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