返回后会终于运行吗?

时间:2016-01-29 10:58:02

标签: c# exception-handling return try-catch

我有这段代码:

try{
    this.connection.Open();
    cmd.ExecuteScalar();
    return true;
}
catch(Exception exc){
    throw exc;
}
finally{
    this.connection.Close();
}

我知道如果catch抛出异常,finally块将继续运行。

但是try的回报呢?

如果try块返回truefinally块会关闭我的连接吗?

这样安全吗?

2 个答案:

答案 0 :(得分:5)

是的,确实如此。像现在一样工作是安全的。

退出代码区后执行finally ,无论是否由return引起。

答案 1 :(得分:5)

MSDN声明

  

最终用于保证代码语句块的执行,无论前面的尝试块是如何退出

所以,是的。