Dalam contoh di bawah ini, apakah koneksi akan ditutup dan dibuang ketika pengecualian dilemparkan jika berada dalam using
pernyataan?
using (var conn = new SqlConnection("..."))
{
conn.Open();
// stuff happens here and exception is thrown...
}
Saya tahu kode di bawah ini akan memastikannya, tetapi saya ingin tahu bagaimana menggunakan pernyataan melakukannya.
var conn;
try
{
conn = new SqlConnection("...");
conn.Open();
// stuff happens here and exception is thrown...
}
// catch it or let it bubble up
finally
{
conn.Dispose();
}
Terkait:
Apa cara yang tepat untuk memastikan koneksi SQL ditutup saat pengecualian dilemparkan?
c#
asp.net
using-statement
Brian Kim
sumber
sumber
Beginilah cara reflektor mendekode IL yang dihasilkan oleh kode Anda:
Jadi jawabannya ya, itu akan menutup koneksi jika
melempar pengecualian.sumber
Dispose () tidak dipanggil dalam kode ini.
sumber