很多时候,当我尝试写一些函数时,我得到了异常。这很正常。在Java中,你可以找到发生异常的位置和原因,但clojure异常文本让我发疯。是否有一些提示如何读取clojure中的异常以及如何查找代码异常发生的位置以及为什么?如何读取REPL中的clojure异常?
例如,我会采取一些代码:
(do
(list?)
(list? [])
(list? '(1 2 3))
(list? (defn f [] (do())))
(list? "a"))
,当我在REPL调用这个函数我会得到
java.lang.IllegalArgumentException: Wrong number of args (0) passed to: core$list-QMARK- (NO_SOURCE_FILE:46)
不帮我多找在第二行的问题。在更复杂的代码中,它几乎不会提供任何信息。 (当然它会告诉看看列表?在一些参数中有错误的数目)。我尝试在REPL中编写代码是错误的吗?如何读取REPL中的异常消息?有没有办法在REPL中获得有关异常的更好信息?
http://stackoverflow.com/questions/2352020/debugging-in-clojure的可能重复。 – 2013-02-19 14:52:50
也与http://stackoverflow.com/questions/14297079/why-are-clojure-stacktraces-so-long/14298576#14298576相关 – JohnJ 2013-02-19 22:43:02