欢迎!请查阅关于页面,了解更多关于如何使用本网站的信息。
由 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 中有效。