diff --git a/modules/reitit-core/src/reitit/exception.cljc b/modules/reitit-core/src/reitit/exception.cljc index def31f69..81a6c693 100644 --- a/modules/reitit-core/src/reitit/exception.cljc +++ b/modules/reitit-core/src/reitit/exception.cljc @@ -7,11 +7,14 @@ ([type data] (throw (ex-info (str type) {:type type, :data data})))) +(defn get-message [e] + #?(:clj (.getMessage ^Exception e) :cljs (ex-message e))) + (defmulti format-exception (fn [type _ _] type)) (defn exception [e] (let [data (ex-data e) - message (format-exception (:type data) #?(:clj (.getMessage ^Exception e) :cljs (ex-message e)) (:data data))] + message (format-exception (:type data) (get-message e) (:data data))] ;; there is a 3-arity version (+cause) of ex-info, but the default repl error message is taken from the cause (ex-info message (assoc (or data {}) ::cause e)))) diff --git a/modules/reitit-dev/src/reitit/dev/pretty.cljc b/modules/reitit-dev/src/reitit/dev/pretty.cljc index 9abc70dc..c5e996e4 100644 --- a/modules/reitit-dev/src/reitit/dev/pretty.cljc +++ b/modules/reitit-dev/src/reitit/dev/pretty.cljc @@ -350,7 +350,7 @@ [:span (color :grey "-- Exception ----------------------")] [:break] [:break] - (color :red (ex-message exception)) + (color :red (exception/get-message exception)) [:break] [:break] (edn left {:margin 3})