| var log = "" |
| |
| fun foo() { |
| try { |
| log += "1" |
| mightThrow() |
| log += "2" |
| } catch (e: Throwable) { |
| log += "3" |
| return |
| } |
| |
| val t = try { |
| log += "4" |
| mightThrow2() |
| log += "5" |
| } catch (e: Throwable) { |
| log += "6" |
| return |
| } |
| |
| val x = try { |
| log += "7" |
| mightThrow3() |
| log += "8" |
| } catch (e: Throwable) { |
| log += "9" |
| return |
| } |
| } |
| |
| var throw1 = false |
| var throw2 = false |
| var throw3 = false |
| |
| fun mightThrow() { |
| if (throw1) throw Exception() |
| } |
| |
| fun mightThrow2() { |
| if (throw2) throw Exception() |
| } |
| |
| fun mightThrow3(): Int { |
| if (throw3) throw Exception() |
| return 42 |
| } |
| |
| fun box(): String { |
| log += "a" |
| foo() |
| throw3 = true |
| log += " b" |
| foo() |
| throw2 = true |
| log += " c" |
| foo() |
| throw1 = true |
| log += " d" |
| foo() |
| |
| if (log != "a124578 b124579 c1246 d13") |
| return "Failed: $log" |
| |
| return "OK" |
| } |