Dispose ainda é chamado quando uma exceção é lançada dentro de uma instrução using?
No exemplo abaixo, a conexão será fechada e descartada quando uma exceção for lançada, se estiver dentro de umusing
declaração?
using (var conn = new SqlConnection("..."))
{
conn.Open();
// stuff happens here and exception is thrown...
}
Eu sei que esse código abaixo garantirá que ele funcione, mas estou curioso para saber como usar a declaração.
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();
}
Palavras-chave:Qual é a maneira correta de garantir que uma conexão SQL seja fechada quando uma exceção é lançada?