Как отловить несколько исключений в Clojure?

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

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

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

Спасибо!

Ответы на вопрос(1)

Решение Вопроса

Это так же, как в Java, вы можете объявить несколько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 выражение.

Ваш ответ на вопрос