有时我需要与 ExceptionInfo 的基本异常信息进行交互(例如 .setStackTrace
)。核心函数 ex-info
也不为任何参数类型提示,因此为了避免反射警告,在使用调用结果时必须指定 ^ExceptionInfo
。
(let [old-ex (Exception. "asdf")
new-ex (ex-info "example" {})]
(doto ^ExceptionInfo new-ex (.setStackTrace (.getStackTrace old-ex))))
给 ex-info
添加类型提示将完美解决这种情况的所有用途(包括 Clojure 核心、ex-data
等用途)。
如果有兴趣,我可以创建一个补丁。