Одно из наиболее частых применений модуля traceback- "мягкая"обработка исключений 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Одно из наиболее частых применений модуля traceback- "мягкая"обработка исключений

Поиск

Одно из наиболее частых применений модуля traceback- "мягкая"обработка исключений

 

с выводом отладочной информации в удобном виде(в лог,на стандартный вывод ошибок и т.п.):

 

#!/usr/bin/python

 

def dbg_except():

 

"""Функция для отладки операторов try-except""" import traceback, sys, string

 

print sys.exc_info()

print " ".join(traceback.format_exception(*sys.exc_info()))

 

def bad_func2(): raise StandardError

 

def bad_func(): bad_func2()

try: bad_func()

 

except: dbg_except()

 

 

В результате получается примерно следующее:

 

(<class exceptions.StandardError at 0x4019729c>, <exceptions.StandardError instance at 0x401df2cc>, <traceback object at 0x401dcb1c>)

 

Traceback (most recent call last): File "pr143.py", line 17, in ?


 


bad_func()

 

File "pr143.py", line 14, in bad_func bad_func2()

 

File "pr143.py", line 11, in bad_func2 raise StandardError

 

StandardError

 

Функция sys.exc_info() дает кортеж с информацией о возбужденном исключении(класс

 

исключения,объект исключения и трассировочный объект).Элементы этого кортежа передаются как параметры функции traceback.format_exception(),которая и печатает

 

информацию об исключении в уже знакомой форме.Модуль traceback содержит и другие функции(о них можно узнать из документации),которые помогают форматировать те или иные части информации об исключении.

 

Разумеется,это еще не все возможности модуля inspect и свойств интроспекции вPython,а лишь наиболее интересные функции и атрибуты.Подробнее можно прочитать в документации или даже в исходном коде модулей стандартной библиотекиPython.

 

Заключение

 

С помощью возможностей интроспекции удается рассмотреть фазы работы транслятораPython: лексический анализ, синтаксический разбор и генерации кода для интерпретатора, саму работу интерпретатора можно видеть при помощи отладчика.

 

Вместе с тем,в этой лекции было дано представление об использовании профайлера для исследования того,на что больше всего тратится процессорное время в программе,а также затронуты некоторые аспекты оптимизацииPython-программ и варианты оптимизации кода наPythonпо скорости.

 

Наконец,интроспекция позволяет исследовать не только строение программы,но и объектов,с которыми работает эта программа.Были рассмотрены возможностиPythonпо получению информации об объектах-этом основном строительном материале,из которого складываются данные любойPython-программы.


 

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 112; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.)