如何打印自定义错误消息?

时间:2018-02-28 12:50:35

标签: python python-3.x discord discord.py

我有以下Discord bot向特定用户发送私信,但如果用户在服务器上禁用了直接消息,我在cmd中收到以下错误:

  

discord.errors.Forbidden:FORBIDDEN(状态代码:403):无法发送   给这个用户的消息

如何修改代码以便获取自定义消息而不是上述错误,例如"无法向此用户发送消息"

我用谷歌搜索但无法找到解决方案。

以下是当前代码:

import discord
import asyncio
import os
from users import userID

key = open("ID.txt","r").readline()
message = open("message.txt","r").read()

bot = discord.Client() # Assign client to an easier variable to follow... for fun.

@bot.event  # must confirm the connection when it's done connecting
async def on_ready():
    print("Connected!")
    print("Username: " + bot.user.name)
    print("   ")
    user = await bot.get_user_info(userID)
    await bot.send_message(user, message)
    print("Done")

bot.run(key.strip())

1 个答案:

答案 0 :(得分:1)

您需要使用try - except块,并使用可选的else关键字。

try:
    user = bot.send_message(user, message)
except discord.errors.Forbidden:
    print(“User doesn’t allow direct messaging.”)
else:
    print(“Done”)

这样做:它尝试将消息发送给用户。如果失败并收到discord.errors.Forbidden异常,它将进入except块,并打印消息,告知它被禁止。如果没有异常,则进入else块,然后打印完成。

相关问题