Как словить определенную ошибку

Работаю с ботом телеграм,который парсит гугл-таблицы. Когда данных после парсинга нет, я получаю

raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 404 when requesting  https://sheets.googleapis.com/v4/spreadsheets//values/A1%3AN24majorDimension=COLUMNS&alt=json returned "Requested entity was not found.">

Вопрос в том, как словить эту ошибку? Например, так:

try:
      ...
except googleapiclient.errors.HttpError:
      ...

Ответы (2 шт):

Автор решения: vp_arth

Ну, так и ловить:

try:
    raise HttpError(resp, content, uri=self.uri)
except HttpError as ex:
    print(ex)
→ Ссылка
Автор решения: vp_arth

нужно сделать так, чтобы заключить код в try/except, и когда он получит эту ошибку код выполнялся заново.

Для этого очень удобно использовать декоратор retrying.retry.
Функция в параметре retry_on_exception определяет нужно ли пытаться выполнить повтор для данного исключения:

import retrying

i = 1; # Глобальная переменная исключительно для демонстрации

@retrying.retry(
    stop_max_attempt_number=5,
    retry_on_exception=lambda ex: True, # Для любого исключения
    wait_exponential_multiplier=500,
    wait_exponential_max=8000)
def foo():
    global i;
    print(f'Try foo...{i}')
    i+=1
    if i < 3:
        raise Error('Any error')

    print('Success')


foo()
Try foo...1
Try foo...2
Success
→ Ссылка