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 に答える