RI
Size: a a a
RI
RI
RI
RI
VS
RI
import kotlinx.coroutines.*
suspend fun test() {
println("test.begin")
try {
delay(5000)
} catch (e: Throwable) {
// It is important to throw an exception different from CancellationException
throw RuntimeException("in test", e)
}
println("test.end")
}
suspend fun proxy() {
try {
test()
} catch (e: Throwable) {
// It is important to throw an exception different from CancellationException
throw RuntimeException("in proxy", e)
}
}
fun main() {
runBlocking {
withTimeout(100) {
proxy()
}
}
}
VS
VS
RI
RI
SM
VL
RI
RI
RI
VS
RI
VS
public final Object invokeSuspend(@NotNull Object $result) {
Object object = IntrinsicsKt.getCOROUTINE_SUSPENDED();
switch (this.label) {
case 0: {
ResultKt.throwOnFailure((Object)$result);
this.label = 1;
Object object2 = DelayKt.delay((long)5000L, (Continuation)this);
if (object2 != object) return Unit.INSTANCE;
return object;
}
case 1: {
ResultKt.throwOnFailure((Object)$result);
Object object2 = $result;
return Unit.INSTANCE;
}
}
throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
}
RI