fun test1() : String { var s = ""; try { try { s += "Try"; throw Exception() } catch (x : Exception) { s += "Catch"; throw x } finally { s += "Finally"; } } catch (x : Exception) { return s } } fun test2() : String { var s = ""; try { s += "Try"; throw Exception() } catch (x : Exception) { s += "Catch"; } finally { s += "Finally"; } return s } fun box() : String { if (test1() != "TryCatchFinally") return "fail1: ${test1()}" if (test2() != "TryCatchFinally") return "fail2: ${test2()}" return "OK" }