Как достать строку, которая вызвала Exception python
Я пишу бота дискорд и у меня появилась такая проблема: Для того, чтобы обработать задержку на команду discord.ext.commands.CommandOnCooldown мне нужен метод on_command_error, но он работает не с конкретной ошибкой, а со всеми сразу из за чего, когда приходит другая(настоящая) ошибка она тоже попадает в on_command_error в виде Exception и я не могу понять что её вызвало, так как получаю только текст. Есть ли способ как-то из объекта Exception достать информацию о строке, которая его вызвала. Пока что мой код выглядит так:
@commands.Cog.listener()
async def on_command_error(self, ctx, error: Exception):
if isinstance(error, commands.CommandOnCooldown):
await self.error_message(ctx, f'This command is on cooldown, you can use it in {round(error.retry_after, 2)}')
else:
print(error)
Ответы (2 шт):
Вместо print(error) используйте raise error
Это выведет полный текст ошибки, а также список вызовов, который привел к ошибке.
Почитать подробнее можно здесь
А вообще, если вы знаете, какие ошибки нужно исключить заранее, лучше сразу прописать это в начало команды и при ошибке выводить информацию в консоль и вызывать return, чтобы преждевременно завершить выполнение функции.