我有以下代码:
public DataTable GetAllActiveUsers() { DataTable dataTable = new DataTable(); try { connection.Open(); SqlCommand getAllActiveUsersCommand = new SqlCommand(getAllUsers, connection); SqlDataAdapter dataAdapter = new SqlDataAdapter(getAllActiveUsersCommand); dataAdapter.Fill(dataTable); return dataTable; } catch(Exception e) { Console.WriteLine(e); return null; } finally { connection.Close(); } }
这基本上是我的数据库中的活跃用户.但有人可以向我解释,Finally
如果成功运行try
块并返回DataTable,是否会执行Block ?
谢谢
是.
如上所述:MSDN
通常,当控件离开try语句时,finally块的语句会运行.控制权的转移可以是正常执行,执行break,continue,goto或return语句,或者从try语句中传播异常的结果.
但最后块并不总是执行.你可以在这里阅读Alex Papadimoulis的轶事