Возможно ли использовать диспетчер контекста для выполнения блока кода и продолжать его повторную попытку, если он генерирует конкретное исключение. Что-то вроде этого:Контекстный менеджер для повторного блока после исключения
with RetryOnException(Some.Exception):
obj.doit()
Какой бы эквивалент:
while True:
try:
obj.doit()
except Some.Exception:
logger.exception("failed")
time.sleep(1)
else:
break
У меня есть много вызовов к способу, который может бросить исключение, и было бы очень неудобно иметь, чтобы написать все, что каждый раз.