评论由: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: 有资格的符号 goo/bar 引用了不存在的命名空间:goo,编译:(/home/scott/dev/foo.clj:3:1)
此外,在这个补丁的RuntimeException被抛出的点,CompilerException的{{source}} {{line}}和{{col}}参数不可用,至少据我所知。