報錯
第一種
# cogs/event.py
# 略
@commands.Cog.listener()
async def on_command_error(ctx, error):
if isinstance(error, commands.CommandNotFound):
await ctx.send(commands.CommandNotFound)
if isinstance(error, commands.UserInputError):
await ctx.send(commands.UserInputError)
if isinstance(error, commands.MissingRequiredArgument):
await ctx.send(commands.MissingRequiredArgument)
# .....
第二種
@commands.command()
async def slots(self, ctx, amount, mang):
await open_account(ctx.author)
#if amount == None:
# await ctx.send("請輸入數字")
# return
@slots.error
async def slots_error(ctx, error):
if isinstance(error, commands.MissingRequiredArgument):
await ctx.send(commands.MissingRequiredArgument)
- 這樣一來,就會有東西出來了,來看看示意圖
第三種
@commands.command()
async def slots(self, ctx, amount, mang):
try:
await ctx.send("pass")
except Exception as e :
await ctx.send(e)
預防性措施
async def withdraw(ctx, amount = None):
- 這代表amount在默認的情況下是None,所以不會遇到錯誤,畢竟自己都在下方寫了return
總結
- 看個人的需求做error的處置
- 也可以將值預設,出問題就return回去