评论: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: Qualified symbol goo/bar refers to nonexistent namespace: goo, compiling:(/home/scott/dev/foo.clj:3:1)
此外,在此补丁的 RuntimeException 被抛出的时候,CompilerException 的 source、line 和 col 参数不可用,或者至少据我所知是这样的。