私は、システムやユーザーが(例外ではない)スローされた例外をラップして、何らかの値を返すようにしたいと考えています。Clojureマクロで例外をラップする方法は?
マクロを書きましたが、動作しません。
マクロ:
(defmacro safe-fn
[form]
(try
`(do ~form)
(catch Throwable e
1)))
使用:(safe-fn (throw (RuntimeException. "Try me!")))
実際の出力:RuntimeException Try me! clojure-brave-and-true.core/eval2219 (form-init6122238559239237921.clj:1)
所望の出力:1