@LimeGeeg

Как обработать ошибку в discord.py, при неправильном заполнении типа данных?

Например есть команда, и пользователю необходимо заполнить первое ее значение типом int. Но нужно сделать проверку, что если пользователь внесет в переменную не int, а например string, то вместо ошибки в консоль он получит сообщение что нужно вводить число, а не буквы. Помогите пожалуйста с кодом
  • Вопрос задан
  • 308 просмотров
Пригласить эксперта
Ответы на вопрос 2
@TupaDev
myVariable = input('Enter a number')
if type(myVariable) == int or type(myVariable) == float:
# Do something
else:
print('The variable is not a number')
Ответ написан
Vindicar
@Vindicar
RTFM!
Используй обработчик ошибок, как показано тут. Будет что-то типа такого
from discord.ext.commands import CommandError, ConversionError

#обработчик команды
@bot.command() 
#черная магия discord.py анализирует type hints чтобы понять, как парсить входное сообщение
async def plus(ctx, x: int, y: int): #указываем, что параметры команды - это целые числа
    z = x + y
    await ctx.send(f"{x} + {y} = {z}")
#обработчик ошибки
@plus.error
async def plus_error(ctx, error):
    if isinstance(error, ConversionError):
        await ctx.send(f"Ошибка преобразования аргументов plus. Вы ввели не числа?")
    elif isinstance(error, CommandError):
        await ctx.send(f"Ошибка выполнения команды plus")
    else:
        await ctx.send(f"Неизвестная ошибка выполнения команды plus")
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы