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!.