评论者:scottbale
抱歉,我应该提到的,因为我自己也觉得不是很明显(事实上,直到刚才才想起来):RuntimeException已经被捕获并包裹在CompilerException中。
我不确定这发生在Compiler.java中的哪个try-catch块,因为有多个。但从输出中可以看到,异常是CompilerException,并且有文件|行|列信息。
在Repl...
user> (def foo/bar 1) CompilerException java.lang.RuntimeException: 合格符号 foo/bar 引用的命名空间不存在:foo, compiling:(NO_SOURCE_PATH:1:1)
...或者在源文件中
user=> CompilerException java.lang.RuntimeException: 有资格的符号 goo/bar 指向不存在的命名空间:goo,编译位置:(/home/scott/dev/foo.clj:3:1)
此外,在抛出此补丁的RuntimeException的点,CompilerException的其他源码行和列参数不可用,或者至少不是AFAICT。