Yes, the finally block is executed however the flow leaves the try block - whether by reaching the end, returning, or throwing an exception.
The return value is determined before the finally block is executed though, so if you did this:
int Test()
{
int result = 4;
try
{
return result;
}
finally
{
// Attempt to change value result
result = 1;
}
}
the value 4 will still be returned, not 1 .
- the assignment in the finally block will have no effect the return result but it will be executed.
A finally block will always be executed and this will happen before returning from the method, so you can safely write code
No comments:
Post a Comment