Wird im folgenden Beispiel die Verbindung geschlossen und getrennt, wenn eine Ausnahme ausgelöst wird, wenn sie sich in einer using
Anweisung befindet?
using (var conn = new SqlConnection("..."))
{
conn.Open();
// stuff happens here and exception is thrown...
}
Ich weiß, dass dieser Code unten sicherstellt, dass dies der Fall ist, aber ich bin gespannt, wie die Verwendung der Anweisung dies bewirkt.
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();
}
Verbunden:
Wie kann sichergestellt werden, dass eine SQL-Verbindung geschlossen wird, wenn eine Ausnahme ausgelöst wird?
c#
asp.net
using-statement
Brian Kim
quelle
quelle
So decodiert der Reflektor die von Ihrem Code erzeugte IL:
Die Antwort lautet also: Ja, die Verbindung wird geschlossen, wenn
löst eine Ausnahme aus.quelle
Dispose () wird in diesem Code nicht aufgerufen.
quelle