当我运行以下文件时
`
(defn f [^double x] x)
(defn g [])
(println)
(f nil))
(g)
`
得到以下堆栈跟踪
`
线程 "main" 抛出异常 java.lang.NullPointerException, 编译:(.../example.clj:7:1)
at clojure.lang.Compiler.load(Compiler.java:7526)
at clojure.lang.Compiler.loadFile(Compiler.java:7452)
at clojure.main$load_script.invokeStatic(main.clj:278)
at clojure.main$script_opt.invokeStatic(main.clj:338)
at clojure.main$script_opt.invoke(main.clj:333)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
原因:java.lang.NullPointerException
at clojure.lang.RT.doubleCast(RT.java:1348)
at user$g.invokeStatic(example.clj:4)
at user$g.invoke(example.clj:3)
at user$eval147.invokeStatic(example.clj:7)
at user$eval147.invoke(example.clj:7)
at clojure.lang.Compiler.eval(Compiler.java:7062)
at clojure.lang.Compiler.load(Compiler.java:7514)
... 9 more
`
以下这里的 {{at user$g.invokeStatic(example.clj:4)}} 非常误导,因为错误发生在第 5 行。