| fun unsupportedEx() { | |
| if (true) throw UnsupportedOperationException() | |
| } | |
| fun runtimeEx() { | |
| if (true) throw RuntimeException() | |
| } | |
| fun test1WithFinally() : String { | |
| var s = ""; | |
| try { | |
| try { | |
| s += "Try"; | |
| unsupportedEx() | |
| } finally { | |
| s += "Finally" | |
| } | |
| } catch (x : RuntimeException) { | |
| return s | |
| } | |
| return s + "Failed" | |
| } | |
| fun test2WithFinally() : String { | |
| var s = ""; | |
| try { | |
| try { | |
| s += "Try"; | |
| unsupportedEx() | |
| return s | |
| } finally { | |
| s += "Finally" | |
| } | |
| } catch (x : RuntimeException) { | |
| return s | |
| } | |
| } | |
| fun box() : String { | |
| if (test1WithFinally() != "TryFinally") return "fail2: ${test1WithFinally()}" | |
| if (test2WithFinally() != "TryFinally") return "fail4: ${test2WithFinally()}" | |
| return "OK" | |
| } |