Originally posted by Chetan Raju:
In your case, an Arithmetic exception is thrown in a catch clause. Then there is a finally clause which will be executed. Since finally has a return statement, this overrides any exception. That means the expection that was raised in catch block is lost after the return statement.
Yes, the JLS would say that this is is a case of the finally block "ending abruptly" and that the original reason is lost.