Итак, в моем основном файле bot.py
, у меня есть:
class Bot(commands.Bot):
# BOT ATTRIBUTES
class MyException(Exception):
def __init__(self, argument):
self.argument = argument
bot = Bot(...)
@bot.event
async def on_command_error(ctx, error):
if isistance(error, bot.MyException):
await ctx.send("{} went wrong!".format(error.argument))
else:
print(error)
Теперь у меня также есть файл cog, куда я иногда хочу выдать исключение Bot().MyException
:
class Cog(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def a_command(self, ctx):
if a_condition:
raise self.bot.MyException("arg")
Когда я запускаю код, если a_condition
был проверен, программа вызывает исключение MyException
, но BOT не отправляет нужное сообщение в функции on_command_error()
в bot.py
. Вместо этого исключение печатается в консоли, и я получаю это сообщение об ошибке:
Command raised an exception: MyException: arg
Может кто-нибудь подсказать, пожалуйста, как заставить БОТ сказать желаемое сообщение в on_command_error()
в bot.py
?