欢迎!请参阅关于页面以了解更多关于此页面如何运作的信息。
评论由:alexmiller 提出
为什么 "(. clojure.lang.PersistentArrayMap EMPTY)"?为什么不直接用 {}?
评论由:lgs32a 提出
我一直认为缺乏单阶数是有意的设计,以便让用户使用映射参数。为什么你想要抛出不带数据的 ExceptionInfos?
评论由: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 "期望 c 为数字。")))
这里不需要数据。
评论人:bronsa
那么为什么不直接抛出(Exception. "expect number for c")呢?我觉得在没有数据的情况下抛出ex-info与直接抛出异常相比于没有带来额外价值
(Exception. "expect number for c")
确实,这是我们选择使用ex-info抛出异常的一个技术决策。
评论人:duke
这是一种从cljc文件中抛出简单异常的好方法,且该方法在clj和cljs中均有效。