here you Main method calls thrower method in which exceptions are thrown in all cases. but your thrower doesnt have catch block so obviuosly it travel through the finally block and the exception are caught by main method which has catch block.
to understand, introduce a catch block in your thrower method
here control goes to thrower(String s) method
But here there is no catch block therefore finally block is executed after try block. and in last this catch block is executed (i.e. after control returns from thrower(String s) method.
1. you haven't written a catch sequence for the second try block
2. in the second try block ... 3rd if statement you haven't enclosed the return statement in the if block [if i suppose you wanted to]
The compiler does enters the catch block after the try block but since you haven't written it so it didn't happen.