我正在使用扭曲的沙井(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()甚至被提出,为什么?
答案 0 :(得分:7)
ConnectionDone()实例被赋予connectionLost()回调。当客户端决定关闭连接时,您应该看到这一点。 你绝对不想过滤失败。您可以将故障视为异常的“异步类比”。通常要做的事情,而不是看到某种异常是这样的:
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