This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff 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".