In Java, a try { ... } finally { ... } is executed somewhat unintuitively to me. As illustrated in another question, Does finally always execute in Java?, if you have a retu
If code in finally block ends abruptly, it changes return value/exception from try block. This is considered to be bad practice, and you should not do that.
Among other places, this is also discussed in Java Puzzlers book.