Проверка на существование сообщения telebot/pytelegrambotapi

При попытке удалить несуществующее сообщение бот вылетает с ошибкой:

"A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: message to delete not found"

код удаления сообщений (команду к боту и ответ бота) через кнопку:

bot.delete_message(call.message.chat.id, call.message.message_id)
bot.delete_message(call.message.chat.id, call.message.reply_to_message.id)
        

В обычной ситуации бот всё нормально удаляет. Ещё пытался решить эту проблему таким образом но не работает:

        if call.message.message_id is None:
            print("message was actually deleted")
        else:
            bot.delete_message(call.message.chat.id, call.message.message_id)
        if call.message.reply_to_message.id is None:
            print("message was actually deleted")
        else:
            bot.delete_message(call.message.chat.id, call.message.reply_to_message.id)

Буду благодарен за помощь.


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

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

Надо просто добавить try и тогда если сообщение уже удалено, то бот не выключится, а выполнит except, туда можете написать ваши принты или что-то другое.

Синтаксис try :

try:
    # Тут удаление сообщения
except:
    print('message not found') # Выполнится при ошибке в блоке try
→ Ссылка