此代码是从 ODBC 连接的数据库读取和写入的应用程序的一部分。它在数据库中创建一条记录,然后检查是否成功创建了一条记录,然后返回 true
。
我对控制流的理解如下:
当“一个方法调用对于对象的当前状态无效”时,command.ExecuteNonQuery()
会抛出一个 InvalidOperationException
。因此,如果发生这种情况,try
块的执行将停止,finally
块将被执行,然后在底部执行 return false;
。
但是,我的 IDE 声称 return false;
是无法访问的代码。似乎是真的,我可以删除它,它编译没有任何抱怨。但是,在我看来,抛出上述异常的代码路径似乎没有返回值。
private static bool createRecord(String table,
IDictionary<String,String> data,
System.Data.IDbConnection conn,
OdbcTransaction trans) {
[... some other code ...]
int returnValue = 0;
try {
command.CommandText = sb.ToString();
returnValue = command.ExecuteNonQuery();
return returnValue == 1;
} finally {
command.Dispose();
}
return false;
}
我的理解有什么错误吗?