Предотвращение ошибки telegram telebot message is empty
@bot.message_handler(commands=['check'])
def main(message):
text = message.text.split()
id = text[1]
c.execute(f"SELECT proofs FROM articles WHERE user_id = {id}")
rows = c.fetchall()
bot.send_message(message.chat.id, rows)
вот отрывок кода где человек командой получает информацию о по айди (/check 0000000000), но если этого айди нету в базе бот прекращает работу и пишет ошибку
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: message text is empty*
Помогите предотвратить данную ошибку и просто если айди нету в базе данных написать пользователю текст "данного айди нету в базе данных"
Ответы (1 шт):
Как мы знаем, текст сообщения не может быть пустой. Если же у тебя rows пустой, то и сообщение пустое. А так нельзя. Сделай фильтрацию результата:
@bot.message_handler(commands=['check'])
def main(message):
text = message.text.split()
id = text[1]
c.execute(f"SELECT proofs FROM articles WHERE user_id = {id}")
rows = c.fetchall()
# bot.send_message(message.chat.id, rows) (вызывает ошибку если пусто)
if not rows:
bot.send_message(message.chat.id, "Инфо не найдено!")
else:
bot.send_message(message.chat.id, rows)
Ничего страшного, что ты это не предусмотрел. Бывает. Но "заруби на носу": если переменная может быть пустой там, где это не надо, надо сделать обработку значения.