As far as I can tell, both of the following code snippets will serve the same purpose. Why have finally blocks at all?
finally
Code A:
try { /*
Because you need that code to execute regardless of any exceptions that may be thrown. For example, you may need to clean up some unmanaged resource (the 'using' construct compiles to a try/finally block).