1# test try-else-finally statement
2
3# base case
4try:
5    print(1)
6except:
7    print(2)
8else:
9    print(3)
10finally:
11    print(4)
12
13# basic case that should skip else
14try:
15    print(1)
16    raise Exception
17except:
18    print(2)
19else:
20    print(3)
21finally:
22    print(4)
23
24# uncaught exception should skip else
25try:
26    try:
27        print(1)
28        raise ValueError
29    except TypeError:
30        print(2)
31    else:
32        print(3)
33    finally:
34        print(4)
35except:
36    print('caught')
37
38# nested within outer try
39try:
40    print(1)
41    try:
42        print(2)
43        raise Exception
44    except:
45        print(3)
46    else:
47        print(4)
48    finally:
49        print(5)
50except:
51    print(6)
52else:
53    print(7)
54finally:
55    print(8)
56
57# nested within outer except, one else should be skipped
58try:
59    print(1)
60    raise Exception
61except:
62    print(2)
63    try:
64        print(3)
65    except:
66        print(4)
67    else:
68        print(5)
69    finally:
70        print(6)
71else:
72    print(7)
73finally:
74    print(8)
75
76# nested within outer except, both else should be skipped
77try:
78    print(1)
79    raise Exception
80except:
81    print(2)
82    try:
83        print(3)
84        raise Exception
85    except:
86        print(4)
87    else:
88        print(5)
89    finally:
90        print(6)
91else:
92    print(7)
93finally:
94    print(8)
95