| def v = "s" |
| def m="10" |
| try { |
| switch (x) { |
| case 1: |
| v = "100" |
| break |
| case 2: |
| break |
| default: |
| throw new IllegalArgumentException("Wrong") |
| } |
| } catch (Exception e) { |
| throw e |
| } |
| println v + m |
| ----- |
| 0(1) element: null |
| 1(2) WRITE v |
| 2(3) WRITE m |
| 3(4) element: Open block |
| 4(5) READ x |
| 5(6,7,9,13) element: Switch statement |
| 6(9,13) WRITE v |
| 7(8,9) THROW. element: NEW expression |
| 8(9) THROW. element: THROW statement |
| 9(10) element: Catch clause |
| 10(11) WRITE e |
| 11(12) READ e |
| 12(17) THROW. element: THROW statement |
| 13(14) READ println |
| 14(15) READ v |
| 15(16) READ m |
| 16(17) element: Call expression MAYBE_RETURN |
| 17() element: null |