欢迎!请参阅 关于 页面以获取更多关于此功能的工作方式的信息。
在处理 CLJS-1722 的同时,我发现了 pr-writer-ex-info 的两个问题。
1) 如果数据或原因发生异常为 "false",它们将在打印时被跳过。2) 代码试图模仿映射打印机。
此补丁修复了这两个问题。结果是打印真实的信息映射产生完全相同的字符串输出,并与 cljs-devtools 打印器(新地看到了真实的映射而不是字符串和值的混乱)配合得更好。
参考资料:pr-writer-ex-info 在 CLJS-983 中实现。
评论由:dnolen 提出
您能解释为什么您认为 1 是一个问题吗?数据应该是一个映射。原因应该是错误,但我认为如果有重新抛出,它包裹了一些可抛值(这当然可以是任何东西),这可能会出问题。
评论由:darwin 提出
免责声明:我没有很多 Clojure 的经验,也没有 Java 的经验。
仅仅通过阅读代码,我并没有在 ex-info(或 ExceptionInfo 构造函数)中看到任何检查来限制数据或原因。因此,我假设可以传递任何东西,并且打印机应该按原样打印它,而不需要额外的逻辑。我假设在 CLJS-983 实现 时检查 nil 值是故意的缩写。我还假设 false 值应该被打印出来。至少我个人希望它能与 nil 区分开来。或者应该根本不进行缩写。