Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';无法捕获pickle错误_Python_Multithreading_Sockets_Pickle - Fatal编程技术网

Python Can';无法捕获pickle错误

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

我有一个线程,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/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
是没有捕捉到的错误