Как получить доступ к объекту исключения, перехватываемому обработчиком исключений ipython по умолчанию?

Предположим, я запускаю некоторый код в интерактивном режиме в IPython, и он выдает неперехваченное исключение, например:

In [2]: os.waitpid(1, os.WNOHANG)
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-2-bacc7636b058> in <module>()
----> 1 os.waitpid(1, os.WNOHANG)

OSError: [Errno 10] No child processes

Это исключение теперь перехватывается обработчиком исключений IPython по умолчанию и выдает сообщение об ошибке. Можно ли как-то извлечь объект исключения, который был пойман IPython?

Я хочу иметь тот же эффект, что и в:

# Typing this into IPython prompt:
try:
    os.waitpid(1, os.WNOHANG)
except Exception, exc:
    pass
# (now I can interact with "exc" variable)

но я хочу без этого шаблона try/except.

11
задан abbot 17 July 2012 в 14:18
поделиться