[New-bugs-announce] [issue23003] traceback.{print_exc, print_exception, format_exc, format_exception}: Potential AttributeError

Arfrever Frehtes Taifersar Arahesis report at bugs.python.org
Sun Dec 7 00:37:27 CET 2014


New submission from Arfrever Frehtes Taifersar Arahesis:

Usage of some functions from traceback module can result in AttributeError exception in Python 3, while simply printing/returning something with None in Python 2.
This regression was introduced in Python 3.0.

$ python2.7 -c 'import traceback; print(traceback.print_exc())'
None
None
$ python2.7 -c 'import traceback; print(traceback.print_exception(None, None, None))'
None
None
$ python2.7 -c 'import traceback; print(traceback.format_exc())'
None

$ python2.7 -c 'import traceback; print(traceback.format_exception(None, None, None))'
['None\n']



$ python3.5 -c 'import traceback; print(traceback.print_exc())'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python3.5/traceback.py", line 252, in print_exc
    print_exception(*sys.exc_info(), limit=limit, file=file, chain=chain)
  File "/usr/lib64/python3.5/traceback.py", line 169, in print_exception
    for line in _format_exception_iter(etype, value, tb, limit, chain):
  File "/usr/lib64/python3.5/traceback.py", line 146, in _format_exception_iter
    for value, tb in values:
  File "/usr/lib64/python3.5/traceback.py", line 125, in _iter_chain
    context = exc.__context__
AttributeError: 'NoneType' object has no attribute '__context__'
$ python3.5 -c 'import traceback; print(traceback.print_exception(None, None, None))'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python3.5/traceback.py", line 169, in print_exception
    for line in _format_exception_iter(etype, value, tb, limit, chain):
  File "/usr/lib64/python3.5/traceback.py", line 146, in _format_exception_iter
    for value, tb in values:
  File "/usr/lib64/python3.5/traceback.py", line 125, in _iter_chain
    context = exc.__context__
AttributeError: 'NoneType' object has no attribute '__context__'
$ python3.5 -c 'import traceback; print(traceback.format_exc())'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python3.5/traceback.py", line 256, in format_exc
    return "".join(format_exception(*sys.exc_info(), limit=limit, chain=chain))
  File "/usr/lib64/python3.5/traceback.py", line 181, in format_exception
    return list(_format_exception_iter(etype, value, tb, limit, chain))
  File "/usr/lib64/python3.5/traceback.py", line 146, in _format_exception_iter
    for value, tb in values:
  File "/usr/lib64/python3.5/traceback.py", line 125, in _iter_chain
    context = exc.__context__
AttributeError: 'NoneType' object has no attribute '__context__'
$ python3.5 -c 'import traceback; print(traceback.format_exception(None, None, None))'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python3.5/traceback.py", line 181, in format_exception
    return list(_format_exception_iter(etype, value, tb, limit, chain))
  File "/usr/lib64/python3.5/traceback.py", line 146, in _format_exception_iter
    for value, tb in values:
  File "/usr/lib64/python3.5/traceback.py", line 125, in _iter_chain
    context = exc.__context__
AttributeError: 'NoneType' object has no attribute '__context__'

----------
messages: 232259
nosy: Arfrever
priority: normal
severity: normal
status: open
title: traceback.{print_exc,print_exception,format_exc,format_exception}: Potential AttributeError
versions: Python 3.4, Python 3.5

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue23003>
_______________________________________


More information about the New-bugs-announce mailing list