当一个转换器应用于通道并在转换过程中发生异常时,ex-handler 将使用
Throwable 作为参数被调用。
我们是否也可以将导致转换异常的 val 发送到 ex-handler?在处理转换器错误时,可能需要了解全面的情况。
如果双方同意,解决方案是 ex-handler 的第二个可变参数,它接受 val 和 Throwable,并且应用的调用是
clojure.core.async.impl.channels 变为
`
(defn chan
...
(try
(add! buf val)
(catch Throwable t
(handle buf exh t val)))))))))
`