欢迎!请参阅 关于 页面以了解该功能的更多信息。
在处理 CLJS-1722 时,我发现了 pr-writer-ex-info 的两个问题。
1) 如果数据或原因恰好是 "false",则会在打印时被跳过。2) 代码试图模仿 map 打印器。
这个补丁修复了这两个问题。结果证明,打印真实信息映射会产生完全相同的字符串输出,并且与 cljs-devtools 打印器(它现在看到的是真实的映射而不是字符串和值的混合)配合得更好。
参考资料:pr-writer-ex-info 在 CLJS-983 中实现。
发表评论者:dnolen
你能解释为什么你认为 1 是一个问题吗?数据应该是映射。原因应该是错误,但我猜想,如果您有一个重新抛出操作,它封装了一些可以抛出的值(这当然可以是任何东西),那可能就麻烦了。
发表评论者:darwin
免责声明:我几乎没有 Clojure 的经验,而 Java 几乎没有。
仅仅通过阅读代码,我没有在 ex-info(或在 ExceptionInfo 构造函数)中看到任何限制数据或原因的检查。因此,我假设任何内容都可以传入,并且打印机应按原样打印它们,而不需要额外的逻辑。我假设对 nil 值的检查是 CLJS-983 实现时的有意省略。我还假设应当按照预期的值打印 false。至少我个人会想要它与前者的 nil 区分开来。或者可以完全不进行省略。