8000 reraising ValueError from unpack.h as UnpackValueError · xiaomauncle/msgpack-python@1183eff · GitHub
[go: up one dir, main page]

Skip to content

Commit 1183eff

Browse files
committed
reraising ValueError from unpack.h as UnpackValueError
1 parent d440631 commit 1183eff

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

msgpack/_unpacker.pyx

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -397,24 +397,27 @@ cdef class Unpacker(object):
397397
else:
398398
raise OutOfData("No more data to unpack.")
399399

400-
ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head)
401-
if write_bytes is not None:
402-
write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head))
403-
404-
if ret == 1:
405-
obj = unpack_data(&self.ctx)
406-
unpack_init(&self.ctx)
407-
return obj
408-
elif ret == 0:
409-
if self.file_like is not None:
410-
self.read_from_file()
411-
continue
412-
if iter:
413-
raise StopIteration("No more data to unpack.")
400+
try:
401+
ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head)
402+
if write_bytes is not None:
403+
write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head))
404+
405+
if ret == 1:
406+
obj = unpack_data(&self.ctx)
407+
unpack_init(&self.ctx)
408+
return obj
409+
elif ret == 0:
410+
if self.file_like is not None:
411+
self.read_from_file()
412+
continue
413+
if iter:
414+
raise StopIteration("No more data to unpack.")
415+
else:
416+
raise OutOfData("No more data to unpack.")
414417
else:
415-
raise OutOfData("No more data to unpack.")
416-
else:
417-
raise ValueError("Unpack failed: error = %d" % (ret,))
418+
raise UnpackValueError("Unpack failed: error = %d" % (ret,))
419+
except ValueError as e:
420+
raise UnpackValueError(e)
418421

419422
def read_bytes(self, Py_ssize_t nbytes):
420423
"""Read a specified number of raw bytes from the stream"""

0 commit comments

Comments
 (0)
0