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