3

我使用(try (/ 1 0) (catch Exception e)),但它似乎是多余的。有没有更简单的方法来做到这一点?我使用它的一个例子是我这样做sql/drop-table。该调用是否因为表不存在而失败并不重要。

4

1 回答 1

9

写一个这样的宏怎么样:

(defmacro swallow-exceptions [& body]
    `(try ~@body (catch Exception e#)))

(swallow-exceptions (/ 1 0)) ; nil

这篇文章中有更复杂的例子。

于 2013-03-30T06:14:50.080 回答