This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
What makes you think you will get that output? Your first run through throws no exception, so you see "1", then the finally block executes (as always), so you see "3", and then you see "4". Your second run through throws an exception, so you see "2", then the finally block executes so you see "3", then you return. Your output is "13423".
If you remove the return statement, the output is "134234".