好吧,最明显的是,如果CommandGet
失败并抛出一个异常,oCommand
将不会被设置 - 它仍然是null,所以oCommand.Connection
在Finally块中会抛出一个NullReferenceException
.
另外,我会说:
不需要Catch
块
两个Using
块(一个用于命令,一个用于适配器)将比明确Try
/ Finally
块更好IMO
编辑:两个解决方案之间的区别很简单 - 一个创建一个"虚拟"命令,然后您可以忽略或处置(但不是两者).另一个显式设置了一个空引用,您可以检查它.
我会使用第三种解决方案 - 使用块:
Using oCommand As CommandGet(ConnectionGet) ' All the normal stuff in here ' End Using