 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
| • |
Once
a throw is executed, control is immediately
|
|
|
transferred
from the try block to the first catch block in the
|
|
|
thread
of control whose type matches the type of operand
|
|
|
associated
with the throw.
|
|
| • |
The
catch block is then executed and we either terminate,
|
|
|
return,
or continue at the first statement following the
|
|
|
sequence
of catch blocks in which the exception was
|
|
|
handled.
|
|
| • |
Think
of throw as analogous to a function call and catch as
|
|
analogous
to a function definition. There can be multiple
|
|
|
catch
blocks each with a unique "formal argument" type.
|
|