重新抛出遇到的异常后,使用块中的sql连接状态会怎样?
Posted
技术标签:
【中文标题】重新抛出遇到的异常后,使用块中的sql连接状态会怎样?【英文标题】:What happens to the state of a sql connection in using block after the exception encountered is re-thrown? 【发布时间】:2012-07-30 10:25:33 【问题描述】: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 块。
【问题讨论】:
【参考方案1】:Finally 块包含无论天气是否存在错误/异常都必须执行的代码。
【讨论】:
【参考方案2】:在您的示例代码中,连接将被关闭。 无论是否发生异常,都会始终执行 finally 代码块。
【讨论】:
以上是关于重新抛出遇到的异常后,使用块中的sql连接状态会怎样?的主要内容,如果未能解决你的问题,请参考以下文章
获取 PL/SQL 中重新抛出异常的完整堆栈跟踪(从点异常开始)