如何在Clojure中获得调用堆栈?

Zub*_*air 11 clojure

我在我的clojure代码中有一点我想知道调用堆栈是什么(即:用于到达那里的clojure函数列表).我怎样才能做到这一点?

Joo*_*aat 14

这不是最好的解决方案,但它很简单,它应该在核心clojure中工作:

(try (throw (Exception. "")) (catch Exception e (.printStackTrace e *out*)))
Run Code Online (Sandbox Code Playgroud)

如果您需要打印版本以外的其他内容,可以在代码中检查e.另请参见当前主分支中的clojure.stacktrace或clojure 1.2的clj-stacktrace.