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