New submission from Austin Bingham <austin.bing...@gmail.com>:

traceback.print_exception() will throw an AttributeException if `value` is None 
and `chain` is True. This is because `_iter_chain` assumes that the exception 
object has a `__cause__` attribute. You can trigger this by trying for format a 
non-existent exception:

  >>> import logging, sys
  >>> logging.Formatter().formatException(sys.exc_info())
  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.1/logging/__init__.py", line 418, in formatException
    traceback.print_exception(ei[0], ei[1], ei[2], None, sio)
  File "/usr/lib/python3.1/traceback.py", line 155, in print_exception
    for value, tb in values:
  File "/usr/lib/python3.1/traceback.py", line 122, in _iter_chain
    cause = exc.__cause__

This is assuming that sys.exc_info() returns (None, None, None).

----------
components: Library (Lib)
messages: 125054
nosy: abingham
priority: normal
severity: normal
status: open
title: traceback.print_exception throws AttributeError when exception is None
type: behavior
versions: Python 3.1

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue10805>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to