dataReceived
因为该函数不是
deferred
用户通常可以控制。您只能拨打
addErrback
在…上
推迟
物体。以下是如何捕获错误的示例:
from twisted.internet.protocol import Protocol
from twisted.internet.defer import Deferred
class Printer(Protocol):
def dataReceived(self, data):
d = Deferred()
d.addCallback(self.display_data)
d.addErrback(self.error_func)
d.callback(data)
def display_data(self, data):
print(data)
print(toto) # this will raise NameError error
def error_func(self, error):
print('[!] Whoops here is the error: {0}'.format(error))
A.
推迟
创建于
接收的数据
将打印的函数
data
和病人
toto
变量。错误反馈函数(即。
self.error_func()
)链接以捕获在中发生的错误
display_data()
。您应该努力避免dataReceived函数本身出现错误。这并不总是可能的,但应该尝试一下。希望这有帮助