Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Clojure Stacktrace_Clojure - Fatal编程技术网

获取Clojure Stacktrace

获取Clojure Stacktrace,clojure,Clojure,我知道 有没有办法让当前stacktrace抛出异常并捕获它 (我正在调试一段代码,希望在某些点捕获堆栈跟踪,以便分析发生了什么。) 谢谢 使用clojure.repl.pst user=> (try (/ 1 0) (catch Exception e (pst e))) ArithmeticException Divide by zero clojure.lang.Numbers.divide (Numbers.java:156) clojure.lang.Number

我知道

有没有办法让当前stacktrace抛出异常并捕获它

(我正在调试一段代码,希望在某些点捕获堆栈跟踪,以便分析发生了什么。)

谢谢

使用clojure.repl.pst

user=> (try (/ 1 0) (catch Exception e (pst e)))
ArithmeticException Divide by zero
    clojure.lang.Numbers.divide (Numbers.java:156)
    clojure.lang.Numbers.divide (Numbers.java:3691)
    user/eval28 (NO_SOURCE_FILE:8)
    clojure.lang.Compiler.eval (Compiler.java:6511)
    clojure.lang.Compiler.eval (Compiler.java:6477)
    clojure.core/eval (core.clj:2797)
    clojure.main/repl/read-eval-print--6569 (main.clj:245)
    clojure.main/repl/fn--6574 (main.clj:266)
    clojure.main/repl (main.clj:266)
    clojure.main/repl-opt (main.clj:332)
    clojure.main/main (main.clj:427)
    clojure.lang.Var.invoke (Var.java:423)

此代码返回StackTraceeElement数组,该数组不难:


基本上看:要么创建自己的异常,要么调用创建自己异常的函数?我没有意识到异常是如此低级/廉价的原语。我想如果我只想要stacktrace,肯定会有一些过热现象可以消除。顺便说一句:pst打印堆栈跟踪到
*err*
(.getStackTrace (Thread/currentThread))