J'ai un projet qui utilise tordu. Dans une classe enfant de twisted.internet.protocol.ClientFactory, il existe des méthodes pour clientConnectionLost/clientConnectionFailed. Lorsqu'une erreur se produit dans l'échange de données, cette méthode d'exécution avec connecteur et raison. Je peux regarder le type et la valeur de l'exception. Mais je n'ai pas trouvé d'informations sur la façon de le supprimer. Après le traitement, il est levé en tant qu'erreur non gérée. Et je ne peux pas faire un gestionnaire d'exception global, j'ai besoin de gérer les exceptions en fonction du type et de la valeur dans ce contexte (et re-connecter etc).tordu clientConnectionLost catch/supress Exception
class MyProtocol(Protocol):
def connectionMade(self):
raise Exception('Connect error')
class Client(ClientFactory):
protocol = MyProtocol
def clientConnectionLost(self, connector, reason):
print reason.type, reason.value # show type and message, OK
reason.cleanFailure() # ???
reactor.connectTCP('127.0.0.1', 80, Client())
reactor.run()
# Unhandled Error
# Traceback (most recent call last): ...............
Des idées?
http://sscce.org/ –
Vous ne comprenez pas vraiment ce code ou vous voulez juste regarder un smarty? OK, je suis un exemple autonome écrit. – Victor
Votre question n'était pas claire auparavant. Vos modifications semblent l'avoir clarifié. Merci. –