Как определить строку, вызвавшую Exception в Python 2.x?

Рейтинг: 2Ответов: 1Опубликовано: 14.04.2011

Код выглядит так:

try:
    ...
    ...
    ...
    ...
exception Exception, e:
    print str(e)

Периодически в try секции происходят различные исключения, я их прекрасно вижу print str(e), но непонятно, в какой строке оно произошло. Есть ли метод определения не только текста исключения, но и строки кода, которая его вызвала?

Ответы

▲ 9Принят

Есть модуль traceback. Пример:

import traceback

def f():
    raise Exception('hello')

try:
    f()
except Exception, e:
    print traceback.format_exc()

выводит:

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    f()
  File "test.py", line 5, in f
    raise Exception('hello')
Exception: hello