; David Rager and Nathan Wetzler wrote this to catch tags thrown in lisp. It's ; placed on the web so that people can search for ; "How do I determine which tag is thrown in Lisp" and hopefully find a quick ; answer. (let ((one-thrown 't) (one-or-two-thrown 't) (one-or-two-or-three-thrown 't)) (catch 'one (catch 'two (catch 'three (arbitrary-code-here) (setq one-or-two-or-three-thrown nil)) (setq one-or-two-thrown nil)) (setq one-thrown nil)) (cond (one-thrown (handle-one)) (one-or-two-thrown (handle-two)) (one-or-two-or-three-thrown (handle-three)) (t nil)))