Как достать строку, которая вызвала 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 шт):

Автор решения: ganz

Модуль traceback, но я сомневаюсь, что ты получаешь экземпляр ошибки

→ Ссылка
Автор решения: denisnumb

Вместо print(error) используйте raise error

Это выведет полный текст ошибки, а также список вызовов, который привел к ошибке.

Почитать подробнее можно здесь


А вообще, если вы знаете, какие ошибки нужно исключить заранее, лучше сразу прописать это в начало команды и при ошибке выводить информацию в консоль и вызывать return, чтобы преждевременно завершить выполнение функции.

→ Ссылка