Exception handling 如何访问`clojure.lang.Compiler$CompilerException`实例的行变量?

Exception handling 如何访问`clojure.lang.Compiler$CompilerException`实例的行变量?,exception-handling,clojure,introspection,Exception Handling,Clojure,Introspection,尝试访问clojure.lang.Compiler$CompilerException实例的line变量失败,但在检查异常时,我可以清楚地看到line变量存在。例如: user=> (try #_=> (load-string "(+ 2 3)\n(- 3 4)\n())") #_=> (catch clojure.lang.Compiler$CompilerException er #_=> (. er line))) IllegalArgu

尝试访问
clojure.lang.Compiler$CompilerException
实例的
line
变量失败,但在检查异常时,我可以清楚地看到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

不访问
变量,只返回异常,实际上会显示该行

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)>
user=>(尝试
#_=>(加载字符串“(+23)\n(-34)\n())”)
#_=>(catch clojure.lang.Compiler$CompilerException编译器
#_=>er)
#
发生什么事了


编辑:在clojure 1.4.0上使用

直到1.5.0关闭时才添加行成员


您必须更新到Clojure 1.5.0才能访问此成员。

直到1.5.0关闭时才添加行成员

您必须更新到Clojure 1.5.0才能访问此成员