If you run the code below it actually executes the finally after every call to the goto:
int i = 0;
Found:
i++;
try
{
throw new Exc
That is the point of the finally
block. It always executes (pretty much).
The following text comes from the C# Language Specification (8.9.3 The goto statement)
A goto statement is executed as follows: