returns the argument of the first Throw generated in the evaluation of expr.
returns value from the first Throw[value,tag] for which form matches tag.
- Catch[expr,…] always returns the value of expr if no Throw was generated during the evaluation.
- form can be any expression, and is often a pattern.
- tag in Throw[value,tag] is re‐evaluated every time it is compared to form.
Examplesopen allclose all
Basic Examples (3)
Exit to the enclosing Catch as soon as the Throw is evaluated:
Define a function that can "throw an exception":
The result of the Catch is just what is thrown by Throw:
Use Throw to exit a loop when a criterion is satisfied:
Catch can catch a Throw from inside essentially any function:
The nearest enclosing Catch catches the Throw:
Catch picks up the first Throw that is evaluated:
Throw need not occur lexically inside Catch:
A function that can throw a number of different exceptions:
A handler for the possible exceptions:
Generalizations & Extensions (3)
Find the next prime after 1010:
Find the first power of 17 equal to 1 mod 19:
Stop if an iteration gets too large:
Properties & Relations (1)
Use Check to throw an exception if a message is generated:
Introduced in 1988
Updated in 1996