получить тип исключения в Python 1.5.2 - PullRequest
3 голосов
/ 16 декабря 2010

Как я могу получить тип исключения в Python 1.5.2?

делает это:

try:
    raise "ABC"
except Exception as e:
    print str(e)

выдает синтаксическую ошибку:

  except Exception as e:
                    ^

SyntaxError: invalid syntax

EDIT: это не работает:

try:
    a = 3
    b = not_existent_variable
except Exception, e:
    print "The error is: " + str(e) + "\n"

a = 3
b = not_existent_variable

поскольку я получаю только аргумент, а не фактическую ошибку (NameError):

The error is: not_existent_variable

Traceback (innermost last):
  File "C:\Users\jruegg\Desktop\test.py", line 8, in ?
    b = not_existent_variable
NameError: not_existent_variable

1 Ответ

9 голосов
/ 16 декабря 2010

Это

except Exception, e:

В Python 1 и 2. (Хотя as также работает в Python 2.6 и 2.7).

(С какой стати вы используете 1.5.2!?)

Чтобы затем получить тип ошибки, которую вы используете type(e).Чтобы получить имя типа в Python 2, вы используете type(e).__name__, я понятия не имею, работает ли это в 1.5.2, вам придется проверить документы.

Обновление: не получилось, но e.__class__.__name__ сделал.

...