python - discord.py 你如何忽略错误并继续前进
问题描述
我想发出一个 dm 公告命令,但是一旦它收到像 dming 本身这样的错误(调用错误)或者当某人的 dm 被关闭(禁止)时,命令完全停止,我也尝试过使用 pass,同样的事情也会发生
我正在使用的代码
@bot.command()
async def dann(ctx):
await ctx.message.delete()
for member in ctx.guild.members:
await member.send("test")
print("Action completed: Message all")
@dann.error
async def man(ctx, error):
if isinstance(error, commands.CommandInvokeError):
print('fail')
elif isinstance(error, commands.Forbidden):
print('dms closed')
或者
@bot.command()
async def dann(ctx):
await ctx.message.delete()
try:
for member in ctx.guild.members:
await member.send("test")
except:
pass
print("Action completed: Message all")
如果发现错误,机器人有没有办法继续前进?
解决方案
您正在寻找的是“ Python Try Expect”
它看起来像这样:
try: ## The try block will generate an exception, because x is not defined
print(x)
except:
print("An exception occurred")
您可以在以下来源中找到更多信息:
推荐阅读
- react-native - 返回上一屏幕时做出本机反应,页面数据未更新
- javascript - 如何激活cdn slick-carousel?
- python - Python正则表达式获取子字符串
- jquery - 使用 JQuery 搜索文本并突出显示
- racket - (DrRacket) 创建学生电子邮件的字符串操作问题
- javascript - 让firebase getDownloadURL返回
- azure - 时序见解预览 - 无法创建布尔变量和字符串变量
- python - 用于文本分类的数据清理的通用方法
- angular - `loadChildren: () => import('./hoge.module.ts).then(m => m.HogeModule)' 和 loadChildren: './hoge.module#HogeModule' 有什么区别?
- java - 布尔对象:打印值而不是地址