Указание сообщения об ошибке валидации-ошибки динамической переменной? - PullRequest
1 голос
/ 29 февраля 2012

Есть ли способ указать сообщение об ошибке при использовании 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)

Есть ли способ указать сообщение об ошибке проверки-ошибки динамическая переменная?

1 Ответ

1 голос
/ 29 февраля 2012

Если вы используете RuntimeException вместо Exception, сообщением об ошибке будет сообщение внутри вашей RuntimeExecption.

(set-validator! #'*d* (fn [x] (if (< x 0) (throw (RuntimeException. "*my-var*
can only be bound to a non-negative number")) true)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...