我有一个 try/except 块,它发送一条消息并等待来自客户端的确认。如果客户端终止,pickle 会引发 EOFError,但下面的代码不会捕获错误并执行正常关闭。它改为打印堆栈跟踪。我认为它与“除了 socket.error,EOFError:”这一行有关 - 我是否使用错误的语法来处理 socket.error 和 EOFError ?
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