Python Can';无法捕获pickle错误
我有一个线程,constanlty通过套接字等待输入。它接收到的东西很好,但是如果我尝试Python Can';无法捕获pickle错误,python,multithreading,sockets,pickle,Python,Multithreading,Sockets,Pickle,我有一个线程,constanlty通过套接字等待输入。它接收到的东西很好,但是如果我尝试pickle.load字符串,那么我会收到一个错误。这很容易捕捉,但它返回的错误是: Exception in thread Listening to <socket._socketobject object at 0x232cd00> at ('127.0.0.1', 48774): Traceback (most recent call last): File "/usr/lib/pyth
pickle.load
字符串,那么我会收到一个错误。这很容易捕捉,但它返回的错误是:
Exception in thread Listening to <socket._socketobject object at 0x232cd00> at ('127.0.0.1', 48774):
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/[redacted]/Server.py", line 46, in Listen
pickled = pickle.loads(data)
File "/usr/lib/python2.7/pickle.py", line 1382, in loads
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 958, in load_binfloat
self.append(unpack('>d', self.read(8))[0])
error: unpack requires a string argument of length 8
侦听at的线程中出现异常('127.0.0.1',48774):
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python2.7/threading.py”,第552行,在引导程序内部
self.run()
文件“/usr/lib/python2.7/threading.py”,第505行,运行中
自我目标(*自我参数,**自我参数)
文件“/home/[redated]/Server.py”,第46行,在Listen中
pickled=pickle.load(数据)
文件“/usr/lib/python2.7/pickle.py”,第1382行,装入
返回Unpickler(file.load())
文件“/usr/lib/python2.7/pickle.py”,第858行,已加载
调度[键](自身)
文件“/usr/lib/python2.7/pickle.py”,第958行,在load\u binfloat中
self.append(解包('>d',self.read(8))[0])
错误:解包需要长度为8的字符串参数
我用一个简单的
try尝试并成功地捕捉到了这个错误…除了check没有任何规范,但我不知道如何捕捉这个“错误”,因为pickle.struct.error
只在少数情况下有效。对,原来struct.error
是没有捕捉到的错误