Python Telebot Функция спотыкается об юзеров заблокировавших бота

День добрый, есть Телеграмм бот в котором реализована команда отправки уведомления об обновлении всем юзерам:

if e.demojize(m.text) == "Уведомление об обновлении":
            db = sqlite3.connect(DBCONNECT)
            db.row_factory = sqlite3.Row
            c = db.execute(f"SELECT * FROM userss where username <> '@None'")
            log = c.fetchall()
            c.close()
            db.close()
            BotChecking = TeleBot(BOTAPIKEY)
            countSended = 0

            for i in log:
                countSended += 1
                BotChecking.send_message(i['tgid'], texts_for_bot["alert_to_update"], parse_mode="HTML")

            BotChecking.send_message(CONFIG['admin_tg_id'],
                                        f"Сообщение отправлено {countSended} пользователям", parse_mode="HTML")

И всё работает замечательно, если кто нибудь из юзеров не заблочит бота. В таком случае бот споткнется об него и прекратит отправлять сообщения, а в консоль выкинет это:

(async_telebot.py:543 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 403. Description: Forbidden: bot was blocked by the user"

Как мне пропускать таких юзеров и продолжать перебор массива и отправку сообщений?


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

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

Как подсказал Юрыч bro(за что ему огромное спасибо), нужно было использовать конструкцию try: except:

Итоговый код выглядит так:

if e.demojize(m.text) == "Уведомление об обновлении":
    db = sqlite3.connect(DBCONNECT)
    db.row_factory = sqlite3.Row
    c = db.execute(f"SELECT * FROM userss where username <> '@None'")
    log = c.fetchall()
    c.close()
    db.close()
    BotChecking = TeleBot(BOTAPIKEY)
    countSended = 0
    countBlocked = 0

    for i in log:
        try: 
            countSended += 1
            BotChecking.send_message(i['tgid'], texts_for_bot["alert_to_update"], reply_markup=Butt_main, parse_mode="HTML")
        except:
            countSended -= 1
            countBlocked += 1
            pass
    BotChecking.send_message(CONFIG['admin_tg_id'], f"Сообщение отправлено {countSended} пользователям. {countBlocked} пользователей заблокировало бота", parse_mode="HTML")
→ Ссылка