如果我将包含 start-agent 的函数传递给一个代理的 set-error-handler,如果发生异常,则会忽略 restart-agent。
例如
(def a (agent 0))
(set-error-handler! a (fn (link: the-agent the-exception) (restart-agent the-agent)) )
现在如果我发出 : (send! a #(/ 1 0)),我仍然有一个失败的代理。它没有重启。
我知道我可以通过将错误模式设置为代理的 :continue 来在崩溃后使代理保持运行,但我希望可以通过修复首先导致异常的条件,然后在 set-error-handler 中程序化地重启代理。
这可能是一种已知的行为,但没有进行文档记录?