如何在Clojure中捕获多个exception?

我的Clojure代码有一些java-interop,它有一个抛出多个exception的方法。 我希望与他们中的每个人打交道。 根据Clojure文档:

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

它没有提到捕捉多个例外。 是否有可能在Clojure中这样做?

谢谢!

它与Java中的相同,你可以一个接一个地声明几个catch表达式,并且它们将按照它们声明的相同顺序匹配 – 首先是Exception1 ,如果它与Exception2不匹配,依此类推, finally部分将始终执行。

 (try  (catch Exception1 e1 (prn "in catch1")) (catch Exception2 e2 (prn "in catch2")) (finally (prn "in finally"))) 

实际上,这是在文档中指定的, (try expr* catch-clause* finally-clause?)意味着你可以拥有“零个或多个表达式”,“零个或多个catch子句”和“零个或一个finally子句”作为try表达式的一部分。