0

我一直在寻找解决方案几个小时,也许我只是错过了一些东西..

我有一个实现的工厂,protocol.ReconnectingClientFactory它工作得很好,但是,每当程序结束运行时,我的日志中都会为运行时发生的每次断开连接收到一堆Unhandled error in Deferred消息,例如

2012-06-14 12:28:51+0100 [-] Unhandled error in Deferred:
2012-06-14 12:28:51+0100 [-] Unhandled Error
        Traceback (most recent call last):
        Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.

有什么办法我可以在运行时以某种方式“处理”这些,这样我的日志就不会在最后被垃圾邮件发送..(或避免它以某种方式发送垃圾邮件......)我真的不在乎解决方案是什么,我已经有以下方法可以为我记录所有内容

def clientConnectionLost(self, connector, reason):
        log.msg('Lost connection. Reason: %s' % reason)

我可以对其中的“原因”(即失败对象)做些什么,以便正确处理错误..?

无论如何,我并没有声称自己精通 Twisted,所以任何帮助都将不胜感激。

提前非常感谢。

4

1 回答 1

1

该消息Unhandled error in Deferred告诉您错误来自哪里,甚至暗示如何消除它。当 aDeferred被垃圾收集并产生Failure结果时,它会记录这些消息 - 因为未处理错误。

将错误处理程序(和errback)添加到以Deferred这种方式失败的错误,并根据需要处理错误(包括忽略它,如果这适合您的应用程序)。

于 2012-06-12T17:31:58.277 回答