当一个变换器应用于通道并且变换期间发生异常时,将使用以下方式调用ex-handler:
将Throwable作为参数。
我们是否也可以将引起变换异常的值发送到ex-handler?处理变换器错误时,了解全面情况可能很有用。
如果同意这样做,并解决方案是ex-handler的一个具有值和可抛出对象第二个参数的一元操作符,调用应用将变更为
clojure.core.async.impl.channels变成了
`
(defn chan
...
(try
(add! buf val)
(catch Throwable t
(handle buf exh t val)))))))))
`