次のコードがあるとします。
private void UpdateDB(QuoteDataSet dataSet, Strint tableName)
{
using(SQLiteConnection conn = new SQLiteConnection(_connectionString))
{
conn.Open();
using (SQLiteTransaction transaction = conn.BeginTransaction())
{
using (SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM " + tableName, conn))
{
using (SQLiteDataAdapter sqliteAdapter = new SQLiteDataAdapter())
{
sqliteAdapter.Update(dataSet, tableName);
}
}
transaction.Commit();
}
}
}
C#のドキュメントには、using
ステートメントを使用するとスコープ内のオブジェクトが破棄されると記載されており、try/finally句を使用する必要がないことが示唆されている場所をいくつか見ました。
私は通常、接続をtry / finallyで囲み、finally節で常に接続を閉じます。上記のコードを考えると、例外が発生した場合に接続が閉じられると想定するのは合理的ですか?