返回后会终于运行吗?

Phi*_*ter -2 c# exception-handling return try-catch

我有这段代码:

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

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

但是回归try呢?

如果try块返回true,finally块会关闭我的连接吗?

这样安全吗?

Pat*_*man 5

是的,它确实.像现在一样工作是安全的.

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


Sad*_*que 5

MSDN声明

最后用于保证语句代码块的执行,而不管前面的try块是如何退出的.

所以,是的.