Skip to content

Commit c9887cb

Browse files
committed
Add basic try-finally testcase.
It's mildly suprising these work without further changes to exception handling code (the only change required was to handle SETUP_FINALLY).
1 parent 8519342 commit c9887cb

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

tests/basics/try-finally1.py

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
print("noexc-finally")
2+
try:
3+
print("try")
4+
finally:
5+
print("finally")
6+
7+
print("noexc-finally-finally")
8+
try:
9+
print("try1")
10+
try:
11+
print("try2")
12+
finally:
13+
print("finally2")
14+
finally:
15+
print("finally1")
16+
print()
17+
18+
print("noexc-finally-func-finally")
19+
def func2():
20+
try:
21+
print("try2")
22+
finally:
23+
print("finally2")
24+
25+
try:
26+
print("try1")
27+
func2()
28+
finally:
29+
print("finally1")
30+
print()
31+
32+
33+
print("exc-finally-except")
34+
try:
35+
print("try1")
36+
try:
37+
print("try2")
38+
foo()
39+
except:
40+
print("except2")
41+
finally:
42+
print("finally1")
43+
print()
44+
45+
print("exc-finally-except-filter")
46+
try:
47+
print("try1")
48+
try:
49+
print("try2")
50+
foo()
51+
except NameError:
52+
print("except2")
53+
finally:
54+
print("finally1")
55+
print()
56+
57+
58+
print("exc-except-finally-finally")
59+
try: # top-level catch-all except to not fail script
60+
try:
61+
print("try1")
62+
try:
63+
print("try2")
64+
foo()
65+
finally:
66+
print("finally2")
67+
finally:
68+
print("finally1")
69+
except:
70+
print("catch-all except")
71+
print()

0 commit comments

Comments
 (0)