Error formatting macro: pagetree: java.lang.NullPointerException
Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History


  • Provide useful stacktraces to end-users
  • Provide stacktraces-as-data to library developers


Stacktrace handling can be divided into three parts: collecting and parsing the exception data, filtering/transforming that data as appropriate for Clojure, and then rendering that data according to some design.

To facilitate steps 2 and 3 for Clojure itself and also for other library developers, we propose to first parse exceptions into Clojure data structures and to provide this data as input to the filtering/transforming and rendering phases.

The data-based approach is used by clj-stacktrace.

clj-stactrace, clojure.repl, and clojure.stacktrace all have different takes on the formatting aspect of stacktrace presentation.


  • Default display format for stacktraces for script and REPL exceptions
  • Details of exception data representation, especially strings vs. non-strings and how to represent different types of trace elements like methods, def'd fns, and closures