Я работаю над ботом Discord в python, который поздравит sh людей с днем рождения. Я планирую, чтобы пользователи сообщали свои дни рождения боту с помощью команды, чтобы он мог сохранить их в текстовом файле. Это код на данный момент:
@bot.command(pass_context=True)
async def birthday(ctx,arg1,arg2,arg3,arg4):
try:
if (ctx.user == bot.user):
return
print(arg1 + ', ' + str(arg2) + ', ' + str(arg3) + ', ' + str(arg4))
except:
channel = bot.get_channel(channel_id)
await channel.send('Oops! I didn\'t get that. Please try again using this format:\n!birthday Garfield 19 6 1978')
По сути, он должен распечатать полученную информацию, если она правильно отформатирована, и предупредить пользователя о проблеме, если это не так. Это сообщение об ошибке, которое я получаю:
Ignoring exception in command birthday:
Traceback (most recent call last):
File "/home/valerie/.local/lib/python3.6/site-packages/discord/ext/commands/bot.py", line 892, in invoke
await ctx.command.invoke(ctx)
File "/home/valerie/.local/lib/python3.6/site-packages/discord/ext/commands/core.py", line 790, in invoke
await self.prepare(ctx)
File "/home/valerie/.local/lib/python3.6/site-packages/discord/ext/commands/core.py", line 751, in prepare
await self._parse_arguments(ctx)
File "/home/valerie/.local/lib/python3.6/site-packages/discord/ext/commands/core.py", line 670, in _parse_arguments
transformed = await self.transform(ctx, param)
File "/home/valerie/.local/lib/python3.6/site-packages/discord/ext/commands/core.py", line 516, in transform
raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: arg4 is a required argument that is missing.
Почему возникает исключение, когда все должно работать нормально, и даже не запускать код except, когда действительно есть проблема? Есть ли способ исправить это?