еще

Код в блоке еще будет работать , только если никакие исключения не были подняты кодом в try блоке. Это полезно, если у вас есть какой-то код, который вы не хотите запускать, если выдается исключение, но вы не хотите, чтобы исключения, генерируемые этим кодом, были перехвачены.

Например:

 try:
    data = {1: 'one', 2: 'two'}
    print(data[1])
except KeyError as e:
    print('key not found')
else:
    raise ValueError()
# Output: one
# Output: ValueError

 

Обратите внимание , что этот вид else: не может быть объединен с if запуске другого придаточного к elif . Если у вас есть следующее , if это необходимо , чтобы остаться с отступом ниже, else: :

 try:
    ...
except ...:
    ...
else:
    if ...:
        ...
    elif ...:
        ...
    else:
        ...