相关疑难解决方法(0)

我可以在不使用eval的情况下编写此宏吗?

我正在尝试编写一个宏,它将在Clojure中捕获编译时错误.具体来说,我想捕获当调用并clojure.lang.Compiler$CompilerException抛出一个尚未针对该数据类型实现的协议方法时抛出的异常.

到目前为止,我有:

(defmacro catch-compiler-error [body] (try (eval body) (catch Exception e e)))

但当然,我被告知这eval是邪恶的,你通常不需要使用它.有没有办法实现这个而不使用eval

我倾向于认为这eval是合适的,因为我特别希望在运行时而不是在编译时评估代码.

lisp macros eval clojure

3
推荐指数
1
解决办法
215
查看次数

标签 统计

clojure ×1

eval ×1

lisp ×1

macros ×1