搞不定啊,如何捕捉sqlDataReader创建时的异常?
这个问题听起来很简单,可是,如下代码:
System.Data.SqlClient.SqlDataReader sqlReader;
try
{
...
sqlReader = sqlCmd.ExecuteReader();
...
}
catch (Exception e)
{
...
}
finally
{
sqlReader.Close(); // 编译出错
}
我希望在执行sqlCmd.ExecuteReader()时,若出错(比如写错了SQL语句),可以截获异常信息,但是
如上的代码就编译不过去,说sqlReader.Close()处的sqlReader未赋值。
如果我把sqlReader = sqlCmd.ExecuteReader();写在try块之外,那就不能处理异常了,因为sqlDataReader不是用new创建的,而是用sqlCommand.ExecuteReader()创建的,我不能在try块之外再new一个吧(这不是浪费么)?那么,我应该怎么办?俺实在有点迷茫,望高手指点一二..