Exceptions
Exceptions are another way to control execution programmatically. We see
that exceptions can be used not only to signal error conditions, but also in
backtracking search procedures or other patterns of control where a
computation needs to be partially undone.
Exceptions are the first type of effect that we encounter; they may
cause an evaluation to be interrupted or aborted.