打印错误代码不起作用(PyCharm、Python 3.8)
Print error code doesn't work (PyCharm, Python 3.8)
我在 Whosebug 中找到了这段代码,它会打印任何错误消息。但它不会打印错误。只是说它是否相关,PyCharm 说 Bot 没有属性 AppInfo。
代码:
@bot.event
async def on_error(event, *args, **kwargs):
embed = discord.Embed(title=':x: Event Error', colour=0xe74c3c)
embed.add_field(name='Event', value=event)
embed.description = '```py\n%s\n```' % traceback.format_exc()
embed.timestamp = datetime.datetime.utcnow()
await bot.AppInfo.owner.send(embed=embed)
bot
class 默认没有 AppInfo
属性。要创建它,请在您的 on_ready()
事件中包含该属性:
@bot.event
async def on_ready():
if not hasattr(bot, 'AppInfo'):
bot.AppInfo = await bot.application_info()
这样做,当它在您的 on_error
活动中使用时将可用。
我找到了另一个有答案的 Whosebug 问题 (Discord.py-Rewrite Sending an Error message when there is an unknown command or other error)。看起来,没有必要像我的代码那样使命令复杂化。
我在 Whosebug 中找到了这段代码,它会打印任何错误消息。但它不会打印错误。只是说它是否相关,PyCharm 说 Bot 没有属性 AppInfo。
代码:
@bot.event
async def on_error(event, *args, **kwargs):
embed = discord.Embed(title=':x: Event Error', colour=0xe74c3c)
embed.add_field(name='Event', value=event)
embed.description = '```py\n%s\n```' % traceback.format_exc()
embed.timestamp = datetime.datetime.utcnow()
await bot.AppInfo.owner.send(embed=embed)
bot
class 默认没有 AppInfo
属性。要创建它,请在您的 on_ready()
事件中包含该属性:
@bot.event
async def on_ready():
if not hasattr(bot, 'AppInfo'):
bot.AppInfo = await bot.application_info()
这样做,当它在您的 on_error
活动中使用时将可用。
我找到了另一个有答案的 Whosebug 问题 (Discord.py-Rewrite Sending an Error message when there is an unknown command or other error)。看起来,没有必要像我的代码那样使命令复杂化。