Бывают ситуации, когда необходимо перехватывать исключения в коде Python, но при этом не прекращать выполнение всей программы. При этом хотелось бы иметь возможность выводить не только информацию об исключении, но и полную трассировку, которая позволяет увидеть, на каком этапе и в каком месте кода произошло исключение.
Рассмотрим типичный пример кода, который перехватывает исключения:
try:
# блок кода, в котором может возникнуть исключение
do_something()
except Exception as err:
print(Exception, err)
В этом примере при возникновении исключения в функции do_something() это исключение будет перехвачено и вместо остановки программы будет выведена информация об исключении. Однако, эта информация включает в себя только тип исключения и его описание, но не содержит полной трассировки.
Для того, чтобы получить полную трассировку, можно воспользоваться модулем traceback из стандартной библиотеки Python. Этот модуль предоставляет функции для работы с трассировками и стековыми фреймами.
Изменим наш пример так, чтобы он выводил полную трассировку:
import traceback
try:
# блок кода, в котором может возникнуть исключение
do_something()
except Exception as err:
print("Exception has occurred: ", err)
traceback.print_exc()
Теперь при возникновении исключения, помимо информации об исключении, будет выведена полная трассировка, которая позволяет увидеть, в каком месте кода произошло исключение.
Таким образом, с помощью модуля traceback можно легко и просто получать полную информацию о возникших исключениях без остановки выполнения программы.
Перейти в телеграм, чтобы получить результаты теста





Забрать
Добавить комментарий