很多时候,当我尝试编写一些函数时,我得到了异常。这是正常的。在 Java 中,您可以找到发生异常的位置和原因,但在 clojure 中,异常文本只会让我抓狂。是否有一些提示如何读取 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 中异常的更好信息?