Python Glossary English

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

StopAsyncIteration

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

Сигнал исчерпания асинхронного итератора (аналог StopIteration для async for).

Синтаксис

raise StopAsyncIteration

Руками это исключение почти не пишут: его поднимает метод __anext__ асинхронного итератора, а async for ловит его молча и просто завершает цикл. Внутри async-генератора выходить через raise StopAsyncIteration нельзя — интерпретатор подменит его на RuntimeError, для завершения достаточно обычного return. Синхронный for и next() про этот сигнал не знают: он работает только в async-контексте.

Примеры

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

См. также

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