J'ai un bloc try/except qui envoie un message et attend la confirmation du client. Si le client se termine, pickle déclenche une EOFError, mais le code ci-dessous n'attrape pas l'erreur et exécute l'arrêt gracieux. Il imprime à la place la trace de la pile. Je suppose qu'il doit faire avec la ligne "except socket.error, EOFError:" - est-ce que j'emploie la syntaxe fausse pour manipuler à la fois socket.error et EOFError là?Python: sauf EOFError: ... ne fonctionne pas
try:
msgs = [1]
self.sock.send(pickle.dumps(msgs))
rdy = pickle.loads(self.sock.recv(2097152))
except socket.error, EOFError:
print 'log socketmanager closing'
self.terminate()
break
étonnamment peu intuitif pour python, merci pour l'info. –