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