尝试访问实例的line
变量clojure.lang.Compiler$CompilerException
失败,但是当我检查异常代码时,我可以清楚地看到 line 变量存在。例如:
user=> (try
#_=> (load-string "(+ 2 3)\n(- 3 4)\n())")
#_=> (catch clojure.lang.Compiler$CompilerException er
#_=> (. er line)))
IllegalArgumentException No matching field found: line for class clojure.lang.Compiler$CompilerException clojure.lang.Reflector.getInstanceField (Reflector.java:271)
当我反而期望3
成为结果时。
不访问line
变量,只是返回异常实际上向我显示了这条线!
user=> (try
#_=> (load-string "(+ 2 3)\n(- 3 4)\n())")
#_=> (catch clojure.lang.Compiler$CompilerException er
#_=> er))
#<CompilerException java.lang.RuntimeException: Unmatched delimiter: ), compiling:(null:3)>
这是怎么回事?
编辑:在 clojure 1.4.0 上使用