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
Seems reasonable. A finally block is always run after either the try or the catch.
finally
try
catch
Similarly
try { // do something return; } finally { // do something else }
will always run the finally block. EDIT - but see Eric's comments above.