 <p><a href="http://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html" rel="nofollow">oracle docs</a> provide a good answer to this. Bottom line: finally gets called always! Even when you catch only one kind of exception (not the global catch), then finally gets called (after which your application probably breaks if there is no other catch)</p>