由:scottbale 发布的评论
抱歉,我应该提到的(因为这也并非对我来说显而易见,并且事实上直到刚才我才想起):RuntimeException 已经被捕获并封装在一个 CompilerException 中。
我不确定这发生在 Compiler.java 中的哪个 try-catch 块中,因为有很多。但是在输出中你可以看到异常是一个 CompilerException,并且文件|行|列信息都在那里
在 Repl...
user> (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: Qualified symbol goo/bar refers to nonexistent namespace: goo, compiling:(/home/scott/dev/foo.clj:3:1)
此外,在这个补丁的 RuntimeException 正在被抛出的点,CompilerException 的 {{source}} {{line}} 和 {{col}} 参数不可用,或者至少不是 afaict。