当一个转换器应用于通道并且在转换过程中发生异常时,会使用
Throwable作为参数调用ex-handler。
我们是否也可以将导致转换异常的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)))))))))
`