我想包装系统或用户抛出的异常(无所谓)并强制它返回一些值。如何在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