Как сделать так, чтобы бот телеграм не прекращал работу после ошибки?

Бот должен запрашивать число, но если пользователь вводит не число, бот слетает, много сайтов облазил и ничего не помогает. Нужно чтобы бот повторно запрашивал число. На примере этого кода желательно объяснить.
def func_1(message):
    i = int(message.text)
    b = i * i
    bot.send_message(message.chat.id, str(i)+' + '+str(i)+' = '+str(b))
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
def func_1(message):
    if message.text.isdigit():
        i = int(message.text)
        b = i * i
        bot.send_message(message.chat.id, str(i)+' + '+str(i)+' = '+str(b))
    else:
        bot.send_message(message.chat.id, "число")


Ну и в else нужно добавить next step handler на эту же функцию, или как там реализовано это все
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Bad-Coder
@Bad-Coder
Не новичок, а тупой...
def func_1(message):
    try:
        i = int(message.text)
        bot.send_message(message.chat.id, "Вы ввели число: " + str(i))
    except ValueError as Error:
        print(Error)
Ответ написан
@Frayl
try покинуло чат...
Ответ написан
SladkayaDoza
@SladkayaDoza
Обучаюсь программированию
Используй - try:
Это - попытка выполнить код, если при попытке будет ошибка это - не остановит весь код, а просто пропустит, но при ошибке можно выполнить другой код, через except:
Или-же вывести Ошибку в консоль - except Exception as a: print(a)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы