C# - Try-Catch-Finally on Return
Yes.
As stated here: MSDN
Typically, the statements of a finally block run when control leaves a try statement. The transfer of control can occur as a result of normal execution, of execution of a break, continue, goto, or return statement, or of propagation of an exception out of the try statement.
But finally block is not always executed. You can read Alex Papadimoulis's anecdote here
Yes, it does.
The finally block will be executed whether there is a return statement or an exception thrown in the try {} catch()
block.
finally block is always executed.
you should Dispose in finally block. Because, dispose also closes the connection and disposes unmanaged memory resources.
finally
{
connection.Dispose();
}