Защита от ошибок в 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

→ Ссылка