Я пытаюсь сделать что-то похожее на следующее:
try:
1/0
except ZeroDivisionError as e:
import ipdb; ipdb.set_trace()
Когда я попадаю в отладчик, я бы хотел, чтобы экземпляр исключения e
находился в моей локальной области. Однако, если я запустил этот скрипт, я обнаружил, что это не так:
Kurts-MacBook-Pro-2:Scratch kurtpeek$ python debug_exception.py
--Return--
None
> /Users/kurtpeek/Documents/Scratch/debug_exception.py(4)<module>()
2 1/0
3 except ZeroDivisionError as e:
----> 4 import ipdb; ipdb.set_trace()
ipdb> dir()
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__return__', '__spec__', 'ipdb']
ipdb> e
*** NameError: name 'e' is not defined
Почему e
не определено? В настоящее время я использую инструкции print
чтобы узнать атрибуты e
, но я считаю, что это должно быть возможно сделать в интерактивном режиме.