使用set时是否有任何方法指定错误消息 - 验证器!动态变量?
在这种情况下:
(binding [*my-var* -1]
(foo))
我希望能够在尝试绑定时抛出自定义异常 到负数。
使用set-validator!像这样,将忽略异常消息:
(set-validator! #'*d* (fn [x] (if (< x 0) (throw (Exception. "*my-var*
can only be bound to a non-negative number")) true)))
相反,您在REPL上看到的消息是: java.lang.IllegalStateException:无效的引用状态 (NO_SOURCE_FILE:0)
有没有办法在a的验证错误上指定错误消息 动态变量?
答案 0 :(得分:1)
如果使用RuntimeException而不是Exception,则错误消息将是RuntimeException内的消息。
(set-validator! #'*d* (fn [x] (if (< x 0) (throw (RuntimeException. "*my-var*
can only be bound to a non-negative number")) true)))