Я создаю, инициализирую и запускаю простейший корутин, но в консоли, кроме ожидаемого вывода, выводится ещё сообщение об ошибке
#!/usr/bin/env python3
def subgen():
print('first iteration')
message = yield
print('second iteration')
print('recieved', message)
# 1
g = subgen()
# 2
g.send(None)
# next(g)
# 3
g.send('ok')
print(g)
# при первой итерации выполняется то, что до yield
# при второй итерации в yield передаётся "ок" и выполняется всё что после yield
Вывод консоли:
first iteration
second iteration
recieved ok
Traceback (most recent call last):
File "./index.py", line 17, in <module>
g.send('ok')
StopIteration
Скажите пожалуйста, можно ли избежать этого сообщения об ошибке? Или то, что оно есть это правильно? То есть как только корутин завершается, то он штатно выбрасывает исключение StopIteration?