grey.core

An experiment at implementing something like Common Lisp's condition/restart
system (see
http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html)
with Dire and Slingshot.

with-handler!

(with-handler! task-var exception-selector handler-key)
Allows you to select a handler for conditions signalled during the execution
of TASK-VAR in code calling TASK-VAR.

Expects TASK-VAR to have a map in its metadata under the key :grey/handlers
and the HANDLER-KEY to be present in this map. When a condition is signalled
and matches EXCEPTION-SELECTOR, the handler for HANDLER-KEY will be called.

See also clj::dire.core/with-handler!.