라이브러리 에서 PhoneNumberUtil.parse
함수는 NumberParseException
을 던집니다. 이 예외를 정상적으로 처리하고 싶습니다. 나는 (java -cp path/to/clojure.jar:path/to/libphonenumber.jar clojure.main -i scratch.clj
호출) 다음과 같은 일회성 스크립트를 실행 해요Clojure에서 사용자 정의 예외 캐치
: catch NumberParseException
, catch PhoneNumberUtil/NumberParseException
및 catch (.NumberParseException phoneUtil)
의 나는 일반적인 catch Exception
그것을 실행하는 경우
(import '(com.google.i18n.phonenumbers PhoneNumberUtil))
(defn parse-phone-no
"Convert the phone number to standard form, using the libphonenumber class.
Arguments:
raw-phone-no - the phone number to convert
Returns:
the canonical version of the phone number, or nil if the phone number was
invalid."
[raw-phone-no]
(do
(def phone-util (PhoneNumberUtil/getInstance))
(try
(do
(def us-number (.parse phone-util raw-phone-no "US"))
(.getNationalNumber us-number))
(catch NumberParseException e
nil))))
(println (parse-phone-no "5"))
다음 잘 작동하지만 조합 Unable to resolve classname
오류가 발생합니다. 사용자 정의 예외를 잡아서 다른 사람들이 슬라이드하게하고 싶습니다. 그래서 당신의 도움에 감사드립니다.
덕분에, 케빈
또한 로컬 변수를 만들기 위해'def' 대신에'let'을 사용하는 것을 고려해야합니다. (이 문맥에서 "고려"는 다음을 의미합니다 : "절대적으로 이것을하십시오. 그러나 Clojure를 배우면 잠시 "). 놀랍게도, 나는 당신과 관련된 순간의 질문을 찾을 수 없다 : 죄송합니다. – amalloy
어쩌면 하나를 물어보고 스스로 대답 할 수 있을까요? 왜냐하면 제 문법이 정말 엉터리라는 것을 압니다. –