Exception handling: Is finally executed after throw?

Viewed 12196

Assume you have the following code:

Instead of doing:

Try
    '
    ' Initialize some objects
    '

    '
    ' do something that fails
    '

    '
    ' Clean up-code that gets not reached because exception
    '
Catch e As Exception
    '
    'Clean up initialized objects
    '

    Throw e
End Try

I would like to do:

Try
    '
    ' Initialize some objects
    '

    '
    ' do something that fails
    '
Catch e As Exception
    Throw e
Finally
    '
    'Clean up initialized objects
    '
End Try

So my simple question is: In case of an exception is the finally block reached even if there is a throw some lines before?

[EDIT] Thanks for your fast answers.

In first line there will be NullReference-, COM- and FileNotFound-Exceptions I think.

Ok, I will go for this code:

Try
    '
    ' Initialize some objects
    '

    '
    ' do something that fails
    '
Catch e As Exception      ' or just "Catch"??        
    Throw
Finally
    '
    'Clean up initialized objects
    '
End Try

All the best!

Inno

5 Answers
Related