python – 为什么Twisted Manhole ConnectionDone是一个错误?

我正在使用扭曲的沙井(https:// github.com/HoverHell/pyaux/blob/master/pyaux/runlib.py#L126),我还将Twisted捕获的错误发送到 python日志记录(https:// github. COM / HoverHell / pyaux /斑点/主/ pyaux / twisted_aux.py#L9).

但是,结果,日志会出现ConnectionDone()错误,这不是一个非常有趣的错误.

什么是适当的改变,以避免得到这个(可能,其他一些)不完全错误?可能会过滤twisted.python.failure.Failure案件?从哪里来的ConnectionDone()甚至提出了,为什么?

解决方法

在连接关闭后,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

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...