В библиотеке libphonenumber функция PhoneNumberUtil.parse
выдает NumberParseException
. Я хотел бы обработать это исключение изящно.
Я запускаю следующий одноразовый скрипт (вызывается с java -cp path/to/clojure.jar:path/to/libphonenumber.jar clojure.main -i scratch.clj
):
(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"))
Если я запускаю его с общим catch Exception
, то он работает нормально, однако любая комбинация catch NumberParseException
, catch PhoneNumberUtil/NumberParseException
и catch (.NumberParseException phoneUtil)
дает ошибку Unable to resolve classname
. Я хотел бы поймать пользовательское исключение и позволить другим скользить, поэтому я буду признателен за вашу помощь.
Спасибо, Кевин