class A(val p: String) { val prop: String = throw RuntimeException() } class B(val p: String) { val prop: String = if (p == "test") "OK" else throw RuntimeException() } fun box(): String { var result = "fail" try { if (A("test").prop != "OK") return "fail 1" } catch (e: RuntimeException) { result = "OK" } if (result != "OK") return "fail 1: $result" if (B("test").prop != "OK") return "fail 2" result = "fail" try { if (B("fail").prop != "OK") return "fail 3" } catch (e: RuntimeException) { return "OK" } return "fail" }