评论者: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:已命名的符号 goo/bar 指向不存在的命名空间:goo,编译:( /home/scott/dev/foo.clj:3:1 )
此外,在这个partial patch抛出RuntimeException的点,CompilerException的{{source}} {{line}}和{{col}}参数不可用,或者至少据我所知是这样的。