Этот код является частью приложения, которое выполняет чтение и запись в подключенную базу данных 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;
}
В чем здесь моя ошибка понимания?