我正在使用 twisted 沙井 (https://github.com/HoverHell/pyaux/blob/master/pyaux/runlib.py#L126),我还将 Twisted 捕获的错误发送到 python 日志记录 (https://github.com/HoverHell/pyaux/blob/master/pyaux/twisted_aux.py#L9)。
但是,结果是日志出现 ConnectionDone()
错误,作为一个错误,这不是一件很有趣的事情。
为了避免出现这个(以及可能的其他一些)不完全错误,应该进行哪些更改?过滤 twisted.python.failure.Failure
情况,也许? ConnectionDone() 甚至从哪里引发,为什么?
ConnectionDone() 实例在连接关闭后被提供给 connectionLost() 回调。当客户端决定关闭连接时,您应该会看到这一点。您绝对不想过滤掉失败。您可以将失败视为 Exception 的“异步类比”。通常要做的事情是,不要看到某种异常是这样的:
from twisted.internet import error
...
def connectionLost(self, reason):
if reason.check(error.ConnectionDone):
# this is normal, ignore this
pass
else:
# do whatever you have been doing for logging
我是一名优秀的程序员,十分优秀!