假设有一个包含无效尾随字符的表单(我认为在更改窗口时按错了键的组合),Clojure 编译器会发出包含错误行号的错误。
假设有一个如下的foo.clj
文件:
(defn foo [x]
(print "hello world")
(+ x x))π
我们得到了引用行 0 列 0 的错误信息
$ clj --init foo.clj
Syntax error compiling at (foo.clj:0:0).
Unable to resolve symbol: π in this context
在一个真实示例中,我在文件顶层有一个多余的 π
字符,位于文件第 142 行,在两个 defn
表达式之间。错误信息是:
Exception: clojure.lang.Compiler$CompilerException: Syntax error compiling at (circle/model/test_build.clj:1:112).
#:clojure.error{:phase :compile-syntax-check, :line 1, :column 112, :source "circle/model/test_build.clj"}
at clojure.lang.Compiler.analyze (Compiler.java:6808)
在开始出现多余字符之前的 defn
表达式从第 112 行开始,我不确定为什么 column
是 112,而 line
不是。