当您用错误数量的参数调用关键字时,错误消息不会报告传递了哪些参数
(:kw "one" "two" "three") => java.lang.IllegalArgumentException: Wrong number of args passed to keyword: :kw
比较调用一个 {{IFn}},它确实显示了传递的参数数量
(name "one" "two" "three") => clojure.lang.ArityException: Wrong number of args (3) passed to: core/name
后者错误消息更清晰,这使得调试更容易。
附带的补丁重用了用于生成错误消息的 {{ArityException}} 类,在调用关键字时以这种形式生成错误消息。
解决 CLJ-1067
补丁: keyword-arity-exception-03.patch
审查者: Alex Miller