root-cause

added
1.1

ns
clojure.stacktrace

type
function

(root-cause tr)

Returns the last 'cause' Throwable in a chain of Throwables.

                ;; make an exception
(def anex (try (/ 1 0) (catch Exception ex ex)))

;; get the root cause
(clojure.stacktrace/root-cause anex)
;;=> #error {
;;    :cause "Divide by zero"
;;    :via
;;    [{:type java.lang.ArithmeticException
;;      :message "Divide by zero"
;;      :at [clojure.lang.Numbers divide "Numbers.java" 163]}]
;;    :trace
;;    [[clojure.lang.Numbers divide "Numbers.java" 163]
;;    [clojure.lang.Numbers divide "Numbers.java" 3833]
;; ...
;;    [java.lang.Thread run "Thread.java" 748]]}