2024 Clojure 状态调查! 中分享你的想法。

欢迎!有关如何使用此信息,请参阅 关于 页面以获取更多信息。

0 投票
错误

当我运行以下文件时

`
(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 行。

1 答案

0 投票
参考: https://clojure.atlassian.net/browse/CLJ-2274 (由 alex+import 报告)
...