(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]]}