Issue 6709: It's possible to create TryExcept with no handlers (original) (raw)
I think we might need to devise some way to add custom validation when AST is being compiled. For example, you can also pass a level to ImportFrom which is < -1.
x = ast.parse("try: x\nexcept y: pass") del x.body[0].handlers[:] compile(x, "", "exec") <code object at 0x7f0a92aed918, file "", line 1> from dis import dis dis(x) dis(compile(x, "", "exec")) 1 0 SETUP_EXCEPT 8 (to 11) 3 LOAD_NAME 0 (x) 6 POP_TOP 7 POP_BLOCK 8 JUMP_FORWARD 1 (to 12) 11 END_FINALLY 12 LOAD_CONST 0 (None) 15 RETURN_VALUE