在重新抛出遇到的异常后,在使用块中sql连接的状态会发生什么?

时间:2012-07-30 10:25:33

标签: .net exception ado.net sqlconnection

Try
    xConn.ConnectionString = xConnBuilder.ConnectionString
    xConn.Open()
    Throw New Exception("Something")
Catch ex As Exception
    Throw
Finally
    If xConn.State = ConnectionState.Open Then
        xConn.Close()
    End If
End Try

在抛出异常并重新抛出维护堆栈跟踪之后,连接对象会发生什么,它是否已关闭,因为在异常的情况下不会到达finally块。

2 个答案:

答案 0 :(得分:3)

最后一个块包含必须执行的代码,无论天气是否有错误/异常。

答案 1 :(得分:1)

在您的示例代码中,连接将被关闭。 无论是否发生异常,始终执行finally代码块。