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Сообщить о неточности