评论者: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参数不可用,至少在afaict中不可用。