67 lines
981 B
Kotlin
Vendored
67 lines
981 B
Kotlin
Vendored
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"
|
|
}
|