欢迎!请查阅关于页面,以获取更多关于此功能的信息。
在编写规格说明时,ExceptionInfo的类型谓词将像Clojure 1.9中的其他新增功能(例如nat-int?、pos-int?等)一样有用。
评论者:alexmiller
列出一些示例代码,说明在何处这种谓词会派上用场(我在捕获处理中认为有这样的示例),并指出其相对常见程度将非常有助于(我觉得在捕获处理中确实存在这样的示例)。
评论者:xmlblog
在某个地方,它可以很有用,比如对从通道中检索的数据进行规格说明。请参阅 http://swannodette.github.io/2013/08/31/asynchronous-error-handling。David的示例立即通过宏抛出异常,但异常信息确实可能放在通道上,这意味着我们可能在转置函数中看到它。这些函数可以利用规格,此时谓词将派上大用场。我想贴代码,但接近的示例是专有的。这种描述足够好吗,还是说需要更多的支持?
此外,虽然David的示例是CLJS,但我在Clojure核心异步代码中使用过这种模式(例如异步Pedestal拦截器)。
此外,从美学(链接:1)角度来看,为已经具有构造器(ex-info)和存取器(ex-data)的核心Clojure抽象提供一个类型谓词(例如ex-info?)似乎使API更加完善。不确定这个论点对您或Rich有多有说服力,但我想这对事态不会有任何坏处。
(链接:1)我对美学的理解受到了Mitch Wand和Dan Friedman的《程序设计语言要素》中一些观点的影响。