0

ソケットを介した入力を常に待機するスレッドがあります。pickle.loads問題なく受信できますが、文字列を取得しようとするとエラーが発生します。これは簡単にキャッチできますが、返されるエラーは次のとおりです。

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

仕様のない単純なtry...exceptチェックでこれをキャッチしようとしましたが、この「エラー」をキャッチする方法がわかりませんpickle.struct.error。いくつかのケースでしか機能しないためです。

4

1 に答える 1