try块内的DataReader导致潜在的空引用错误

Dea*_*ean 2 vb.net exception visual-studio

可能有一个简单的解决方案,但我目前有类似的代码

dim dr as dbDataReader

try
      dr = connection.getDataReader(sql_str)
Catch ex as sqlClientException
     log.error(ex)
finally 

  if not IsNothing(dr) then
    dr.close
  end if
end try
Run Code Online (Sandbox Code Playgroud)

但是,Visual Studio仍然警告我

if not IsNothing(dr) then
        dr.close
      end if
Run Code Online (Sandbox Code Playgroud)

可能导致NullReferenceException.减轻这种情况的最佳方法是什么?我无法将声明移到try块中.

Jas*_*ome 9

将dr声明显式初始化为Nothing:

Dim dr As DbDataReader = Nothing
Run Code Online (Sandbox Code Playgroud)

警告将消失.