If a catch block cannot handle the particular exception it has caught , you can rethrow the exception. The rethrow expression (throw with no argument) causes the originally thrown object to be rethrown.
Because the exception has already been caught at the scope in which the rethrow expression occurs, it is rethrown out to the next dynamically enclosing try block. Therefore, it cannot be handled by catch blocks at the scope in which the rethrow expression occurred. Any catch blocks following the dynamically enclosing try block have an opportunity to catch the exception.
The rethrow expression can be caught by any catch whose argument matches the argument of the exception originally thrown.
Using a Conditional Expression
in a Throw Expression
Example of Rethrowing an Exception
Catching Exceptions
Transferring Control
Using Exception Handling
Nested Try Blocks
Exception Specifications