欢迎!请参阅关于页面,了解更多关于如何使用本网站的信息。
评论者:alexmiller
为什么是"(. clojure.lang.PersistentArrayMap EMPTY)"?为什么不是"{}"?
评论者:lgs32a
我一直认为缺少单一参数是有意设计,以使用户使用映射参数。你为什么想抛出没有数据的数据异常呢?
评论者:killme2008
@Alex 我忘记了在这里使用EMPTY映射的原因,可能受以下代码的影响https://github.com/clojure/clojure/blob/7aad2f7dbb3a66019e5cef3726d52d721e9c60df/src/clj/clojure/core.clj#L4336
@Leon 例如,当参数错误时抛出异常
(when-not (integer? c)(throw (ex-info "期望c是一个数字。"]))
此处不需要数据。
评论人:bronsa
那么为什么不直接抛出一个 (Exception. "expect number for c") 呢?我认为在抛出没有数据的ex-info和直接抛出异常相比,并没有增加太多价值。
(Exception. "expect number for c")
确实,我们只是做出了一个纯技术层面的决定,选择使用ex-info来抛出异常。
评论人:duke
这是从cljc文件中抛出简单异常的好方法,它可以在clj和cljs中都正常工作。