我有这段代码:
try{
this.connection.Open();
cmd.ExecuteScalar();
return true;
}
catch(Exception exc){
throw exc;
}
finally{
this.connection.Close();
}
我知道如果catch
抛出异常,finally
块将继续运行。
但是try
的回报呢?
如果try
块返回true
,finally
块会关闭我的连接吗?
这样安全吗?
答案 0 :(得分:5)
是的,确实如此。像现在一样工作是安全的。
退出代码区后执行finally
,无论是否由return
引起。
答案 1 :(得分:5)
MSDN声明
最终用于保证代码语句块的执行,无论前面的尝试块是如何退出。
所以,是的。