Вопрос по exception, java, clojure – Как отловить несколько исключений в Clojure?

12

Мой код Clojure имеет некоторое java-взаимодействие с методом, который выдает несколько исключений. Я хочу иметь дело с каждым из них. Согласно документации Clojure:

(try expr* catch-clause* finally-clause?)
catch-clause -> (catch classname name expr*)

в нем нет упоминания о перехвате нескольких исключений. Возможно ли это сделать в Clojure?

Спасибо!

Ваш Ответ

1   ответ
24

catch выражения одно за другим, и они будут сопоставлены в том же порядке, в котором они были объявлены - сначалаException1если он не совпадает,Exception2 и так далее, иfinally часть всегда будет выполнена.

(try <some code>
    (catch Exception1 e1 (prn "in catch1"))
    (catch Exception2 e2 (prn "in catch2"))
    (finally (prn "in finally")))

На самом деле это указано в документации,(try expr* catch-clause* finally-clause?) означает, что вы можете иметь «ноль или более выражений», «ноль или более выражений catch» quot; и "ноль или один окончательный пункт" как частьtry выражение.

спасибо, я должен был обратить внимание на оговорку Star haha ..
Добрый день!Kleene starменя это никогда не разочаровывает :)

Похожие вопросы