有时我需要与 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
等)。
如果有人感兴趣,我可以创建一个补丁。