【问题标题】:Clojure error - trace errorClojure 错误 - 跟踪错误
【发布时间】:2015-12-11 17:56:18
【问题描述】:

我有一个必须在下周之前完成的学校作业,但是我坐在这里,试图解决一个我真的不明白为什么会得到这个错误问题?

根据我老师的说法,我必须得到这个:

user> (def v (safe (/ 1 0))) 
user> v

ArithmeticException java.lang.ArithmeticException: Divide by zero

但我这样做时得到的是:

java.io.File
user=> (def v (safe (/ 1 0)))
#'user/v
user=> v
#error {
 :cause "Divide by zero"
 :via
 [{:type java.lang.ArithmeticException
   :message "Divide by zero"
   :at [clojure.lang.Numbers divide "Numbers.java" 158]}]
 :trace
 [[clojure.lang.Numbers divide "Numbers.java" 158]
  [clojure.lang.Numbers divide "Numbers.java" 3808]
  [user$fn__17 invoke "NO_SOURCE_FILE" 30]
  [clojure.lang.AFn applyToHelper "AFn.java" 152]
  [clojure.lang.AFn applyTo "AFn.java" 144]
  [clojure.lang.Compiler$InvokeExpr eval "Compiler.java" 3623]
  [clojure.lang.Compiler$DefExpr eval "Compiler.java" 439]
  [clojure.lang.Compiler eval "Compiler.java" 6787]
  [clojure.lang.Compiler eval "Compiler.java" 6745]
  [clojure.core$eval invoke "core.clj" 3081]
  [clojure.main$repl$read_eval_print__7099$fn__7102 invoke "main.clj" 240]
  [clojure.main$repl$read_eval_print__7099 invoke "main.clj" 240]
  [clojure.main$repl$fn__7108 invoke "main.clj" 258]
  [clojure.main$repl doInvoke "main.clj" 258]
  [clojure.lang.RestFn invoke "RestFn.java" 421]
  [clojure.main$repl_opt invoke "main.clj" 324]
  [clojure.main$main doInvoke "main.clj" 422]
  [clojure.lang.RestFn invoke "RestFn.java" 397]
  [clojure.lang.Var invoke "Var.java" 375]
  [clojure.lang.AFn applyToHelper "AFn.java" 152]
  [clojure.lang.Var applyTo "Var.java" 700]
  [clojure.main main "main.java" 37]]}

【问题讨论】:

  • 由于您在答案中使用了宏标签,您可以发布安全宏(或函数)的正文吗?

标签: exception clojure macros


【解决方案1】:

你明白了,只是错误的格式有点不同。

如果您查看:via 键,您会看到:type 键的值是java.lang.ArithmeticException:message 键的值是Divide by zero

把它们放在一起,你会得到java.lang.ArithmeticException: Divide by zero

这可能与您运行 REPL 的方式有关。我从未见过这样的错误,但我通常使用 leiningen 命令运行 REPL:lein repl

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2018-09-19
    • 2014-12-27
    • 1970-01-01
    相关资源
    最近更新 更多