由:scottbale 发表的评论
抱歉,我应该提到这一点,因为这对我也不是很明显(实际上我直到刚才才意识到):RuntimeException已经被捕获并包装在CompilerException中。
我不确定这个Compiler.java中的哪个try-catch块发生了这种情况,因为有多个。但你可以从输出中看到异常是CompilerException,并且文件|行|列信息是有的
在Repl...
用户 > (def foo/bar 1) CompilerException java.lang.RuntimeException: Qualified symbol foo/bar refers to nonexistent namespace: foo, compiling:(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。