Blame tests/run/tryfinallychaining.pyx
|
Packit |
562c7a |
# mode: run
|
|
Packit |
562c7a |
# tag: exceptions, tryfinally
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
import sys
|
|
Packit |
562c7a |
IS_PY3 = sys.version_info[0] >= 3
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def test_finally_c():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> def test_finally_py():
|
|
Packit |
562c7a |
... try:
|
|
Packit |
562c7a |
... raise AttributeError()
|
|
Packit |
562c7a |
... finally:
|
|
Packit |
562c7a |
... raise KeyError()
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
>>> try:
|
|
Packit |
562c7a |
... test_finally_py()
|
|
Packit |
562c7a |
... except KeyError:
|
|
Packit |
562c7a |
... print(sys.exc_info()[0] is KeyError or sys.exc_info()[0])
|
|
Packit |
562c7a |
... if IS_PY3:
|
|
Packit |
562c7a |
... print(isinstance(sys.exc_info()[1].__context__, AttributeError)
|
|
Packit |
562c7a |
... or sys.exc_info()[1].__context__)
|
|
Packit |
562c7a |
... else:
|
|
Packit |
562c7a |
... print(True)
|
|
Packit |
562c7a |
True
|
|
Packit |
562c7a |
True
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
>>> try:
|
|
Packit |
562c7a |
... test_finally_c()
|
|
Packit |
562c7a |
... except KeyError:
|
|
Packit |
562c7a |
... print(sys.exc_info()[0] is KeyError or sys.exc_info()[0])
|
|
Packit |
562c7a |
... if IS_PY3:
|
|
Packit |
562c7a |
... print(isinstance(sys.exc_info()[1].__context__, AttributeError)
|
|
Packit |
562c7a |
... or sys.exc_info()[1].__context__)
|
|
Packit |
562c7a |
... else:
|
|
Packit |
562c7a |
... print(True)
|
|
Packit |
562c7a |
True
|
|
Packit |
562c7a |
True
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
try:
|
|
Packit |
562c7a |
raise AttributeError()
|
|
Packit |
562c7a |
finally:
|
|
Packit |
562c7a |
raise KeyError()
|