2012-02-29 9 views
1

set- バリデータを使用しているときにエラーメッセージを指定する方法はありますか。動的なvar?このような状況では動的varの検証エラーでエラーメッセージを指定していますか?

(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)

は、方法はあります検証エラーのエラーメッセージを 動的var?

答えて

1

例外の代わりにRuntimeExceptionを使用する場合、エラーメッセージはRuntimeExecption内のメッセージになります。

(set-validator! #'*d* (fn [x] (if (< x 0) (throw (RuntimeException. "*my-var* 
can only be bound to a non-negative number")) true))) 
関連する問題