Защита от ошибок в bot handler [telebot]
Я пишу бота, у одной из функций, есть call.data, которая всегда состоит из строки 'basket_xxx', только вместо xxx, число. В одном из хендлеров, я принимаю именно такую call.data и обрабатываю, но бывает, что бот получает ошибку, если при запуске не находит нужный хендлер.
Вот мой код:
@bot.callback_query_handler(func=lambda call: (call.data).split('_')[1] in map(str, range(101, int((list(items.keys()))[-1]) )))
Я хочу в этом заголовке обрабатывать запрос, с помощью try: except:, например:
try: (call.data).split('_')[1] in map(str, range(101, int((list(items.keys()))[-1])
except: print(123)
Как это можно сделать?
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
Боже. Замените это
@bot.callback_query_handler(func=lambda call: (call.data).split('_')[1] in map(str, range(101, int((list(items.keys()))[-1]) )))
На это
@bot.callback_query_handler(func=lambda call: call.data.startswith("basket_"))
И вам не нужны никакие try/except