Для обработки исключений Python предоставляет конструкцию из трех слов: tryexcept else и finally.

try Основной код закладывается в try

except Если в этом коде генерируется исключение, то работа кода в блоке try прерывается, и выполнение переходит в блок except.

else выполняется в том случае, если исключения не было.

finally выполняется в любом случае, даже если было исключение (применима, когда нужно непременно что-то сделать, к примеру, закрыть файл)

Синтаксис выглядит примерно так:

try:
    # попробовать сделать это
except:
    # если блок try не сработал, попробовать это
finally:
    # всегда делать это

Ниже упрощенный пример такой конструкции. Здесь блок try терпит неудачу, поскольку мы не можем складывать целые числа со строками. Блок except устанавливает val = 10, а затем блок finally выводит complete:

try:
    val = 1 + 'A'
except:
    val = 10
finally:
    print('complete')

print(val)
#=> complete