on oracle oficial site write:(http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html#rethrow)
In detail, in Java SE 7 and later, when you declare one or more exception types in a catch clause, and rethrow the exception handled by this catch block, the compiler verifies that the type of the rethrown exception meets the following conditions:
The try block is able to throw it.
There are no other preceding catch blocks that can handle it.
It is a subtype or supertype of one of the catch clause's exception parameters.
Please concentrate on third point (It is a subtype or supertype of one of the catch clause's exception parameters.)
What it really means with that? Could you show me examples of that? I can't understand it clearly.