在阅读Python 3.3文档时,我注意到有关BufferError异常的条目:“当无法执行与缓冲区相关的操作时引发”。现在我想知道在哪些情况下代码可以抛出此错误以确定它是由于编程错误还是更像是一种系统错误。有人为这个例外做了一个例子吗?
答案 0 :(得分:0)
以下是可能引发BufferError的函数列表:
http://docs.python.org/3.4/c-api/buffer.html#buffer-related-functions
答案 1 :(得分:0)
大多数异常实际上比使用缓冲协议的Python代码更适用于C代码;请参阅C API buffer protocol。
从3.3源代码中,我看到BufferError
使用了以下错误消息:
memoryview
:
memoryview
时,底层缓冲区不可写。不应该从Python代码中发生。 bytearray
:
bytearray
。还有一个未记录的PyObject_CopyData
C-API方法,如果目标缓冲区太小,那么目标的抛出此异常太小,无法从源接收数据。