欢迎!请查看 关于 页面以了解更多关于如何使用本站的信息。
评论者:alexmiller
为什么 "(. clojure.lang.PersistentArrayMap EMPTY)"?为什么不直接使用 {}?
评论者:lgs32a
我一直认为缺少单参数设计是有意的,以使用户使用地图参数。为什么你想抛出没有数据的 ExceptionInfo?
评论者: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 没有什么额外价值
(Exception. "expect number for c")
的确,这只是一个技术决策,我们选择使用 ex-info 抛出异常。
评论者:duke
这确实是从 cljc 文件中抛出简单异常的好方法,它同时适用于 clj 和 cljs。