throw

Die Ausnahmebehandlung basiert auf den beiden Funktionen catch-and-apply (bzw. catch) und throw. Beide erwarten zwei Argumente und werten diese aus. Beim ersten Argument handelt es sich um ein Symbol, dass zur Unterscheidung der Ausnahmen dient.

Ein Funktionsaufruf der Form

(throw symbol expr-2)

löst die Ausname symbol mit dem zugeordneten Wert expr-2 aus. Ein catch-Ausdruck, der die Ausname symbol auffängt, bekommt den Wert expr-2.

System-Ausnahmen, wie Division durch Null, werden mit dem Symbol error ausgelöst.

> (catch (quote exception) (+ 9 8))
17

> (catch (quote exception) (+ (throw (quote exception) "hallo welt") 8 7))
"hallo welt"