2012-02-29 7 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))) 
관련 문제