评论由:scottbale 发布
抱歉,我应该提到的,因为这也对我来说并不明显(实际上我直到刚才才想到):RuntimeException已经被捕获并封装在CompilerException中。
我不确定这是在Compiler.java中的哪个try-catch块发生的,有多个。但是你可以从输出中看到异常是CompilerException,并且有文件|行|列信息
在Repl...
user> (def foo/bar 1) CompilerException java.lang.RuntimeException: 合格符号 foo/bar 指向不存在的命名空间:foo,编译:(NO_SOURCE_PATH:1:1)
...或者在一个源文件中
user=> CompilerException java.lang.RuntimeException: Qualified symbol goo/bar refers to nonexistent namespace: goo, compiling:(/home/scott/dev/foo.clj:3:1)
此外,在这个补丁的RuntimeException被抛出的点上,CompilerException的source行和列参数不可用,至少在一定程度上是这样。