| from exception_order import * | |
| # This test is expected to fail with -builtin option. | |
| # Throwing builtin classes as exceptions not supported | |
| if is_python_builtin(): | |
| exit(0) | |
| a = A() | |
| try: | |
| a.foo() | |
| except E1 as e: | |
| pass | |
| except: | |
| raise RuntimeError("bad exception order") | |
| try: | |
| a.bar() | |
| except E2 as e: | |
| pass | |
| except: | |
| raise RuntimeError("bad exception order") | |
| try: | |
| a.foobar() | |
| except RuntimeError as e: | |
| if e.args[0] != "postcatch unknown": | |
| raise RuntimeError("bad exception order {}".format(e.args)) | |
| try: | |
| a.barfoo(1) | |
| except E1 as e: | |
| pass | |
| except: | |
| raise RuntimeError("bad exception order") | |
| try: | |
| a.barfoo(2) | |
| except E2 as e: | |
| pass | |
| except: | |
| raise RuntimeError("bad exception order") |