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.