关于c#:返回后会终于运行吗?

Will finally run after return?

本问题已经有最佳答案,请猛点这里访问。

我有这段代码:

1
2
3
4
5
6
7
8
9
10
11
try{
    this.connection.Open();
    cmd.ExecuteScalar();
    return true;
}
catch(Exception exc){
    throw exc;
}
finally{
    this.connection.Close();
}

我知道如果catch抛出异常,finally块无论如何都会运行。

但是,江户的回报是多少呢?

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

这样安全吗?


MSDN状态

finally is used to guarantee a statement block of code executes regardless of how the preceding try block is exited.

所以,是的。


是的,是的。像你现在这样工作是安全的。

它在退出代码块后执行finally,无论这是否由return引起。