我正在使用Clojure,并且希望获得可以记录的堆栈跟踪信息(理想情况下,我想将其作为String获取)。
我看到(.getStackTrace e)
返回一个StackTraceElement[]
,但是我不知道如何打印出有意义的内容。我的第二种方法是使用PrintWriter作为参数的(.printStackTrace e)
(因为我知道这在Java中是可能的),但是我似乎没有获得正确的语法。
谢谢。
最佳答案
如果number23_cn的解决方案太多了,这就是您可以如何将.getStackTrace的结果用作字符串(然后可以将其打印,放入日志等)
(try (/ 1 0)
(catch Throwable t
(map str (.getStackTrace t))))