Исключение, возникающее при запросе закрытия генератора/сопрограммы.

Исключение поднимается методом .close() генератора/сопрограммы.
Используется для управления генератором/сопрограммой извне.

    def generate():
values = [1, 2]

for value in values:
try:
yield value

except GeneratorExit as e:
# При попытке выработать значение в ходе обработки
# поднимется RuntimeError.
# yield 200 # RuntimeError: generator ignored GeneratorExit
print('Принудительная остановка')
raise # Повторно поднимаем исключение.


my_generator = generate()

print(next(my_generator)) # 1

my_generator.close() # Принудительная остановка

Начиная с +py2.6 наследуется от BaseException.

На заметку
Если данный тип исключения обрабатывается внутри генератора/сопрограммы, то генератор/сопрограмма не должна вырабатывать (yield) значение, в противном случае будет возбуждено исключение RuntimeError.
Синонимы поиска: GeneratorExit
На заметку
У нас есть представительство во ВКонтакте. Ссылка в самом низу страницы.