Dans l'exemple ci-dessous, la connexion va-t-elle se fermer et être supprimée lorsqu'une exception est levée si elle se trouve dans une using
instruction?
using (var conn = new SqlConnection("..."))
{
conn.Open();
// stuff happens here and exception is thrown...
}
Je sais que ce code ci-dessous s'assurera que c'est le cas, mais je suis curieux de savoir comment utiliser l'instruction le fait.
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();
}
En relation:
Quelle est la bonne façon de garantir qu'une connexion SQL est fermée lorsqu'une exception est levée?
c#
asp.net
using-statement
Brian Kim
la source
la source
Voici comment réflecteur décode l'IL généré par votre code:
Donc la réponse est oui, cela fermera la connexion si
lève une exception.la source
Dispose () n'est pas appelé dans ce code.
la source