Python Glossary English

Python 3.3+Исключенияисключение

BlockingIOError

встроенные исключения

Неблокирующая операция ввода-вывода заблокировалась бы (подкласс OSError).

Синтаксис

raise BlockingIOError

Возникает не сама по себе, а только если файл или сокет переведён в неблокирующий режим (socket.setblocking(False), флаг O_NONBLOCK): данных ещё нет или буфер отправки заполнен, системный errno — EAGAIN/EWOULDBLOCK. Это не поломка, а сигнал «попробуй позже»: правильная реакция — дождаться готовности дескриптора через selectors или asyncio, а не крутить повтор в пустом цикле. При частичной записи смотрите атрибут characters_written — сколько байт всё-таки ушло.

Примеры

try:
    raise BlockingIOError
except BlockingIOError as e:
    print(type(e).__name__)   # → BlockingIOError

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности