欢迎!请查看关于页面以了解更多有关如何使用本站的信息。
评论由: alexmiller
为什么要使用“(. clojure.lang.PersistentArrayMap EMPTY)”?为什么不能直接使用{}?
评论由: lgs32a
我一直认为缺乏单个参数形式是有意为之,为了使用户使用映射参数。你为什么想在没有任何数据的情况下抛出ExceptionInfo?
评论由: killme2008
@Alex 我忘了为什么我在这里使用了EMPTY map,可能受到了下面代码的影响 https://github.com/clojure/clojure/blob/7aad2f7dbb3a66019e5cef3726d52d721e9c60df/src/clj/clojure/core.clj#L4336
@Leon 比如,当参数出错时抛出异常
(when-not (integer? c)(throw (ex-info "Expect number for c."))
这里不需要数据。
评论者:bronsa
那为什么不直接抛出 (Exception. "expect number for c") 呢?我觉得抛出ex-info(无数据)与直接抛出Exception没有增加多少价值
(Exception. "expect number for c")
确实,这只是一个技术决定,我们选择了使用ex-info抛出异常。
评论者:duke
这是从cljc文件中抛出简单异常的一种好方法,它可以在clj和cljs中同时工作。