diff --git a/examples/coroutine1.cc b/examples/coroutine1.cc index 4756ff3..35f1ec1 100644 --- a/examples/coroutine1.cc +++ b/examples/coroutine1.cc @@ -42,7 +42,13 @@ int main() { int val = 5; for (int i: range(steps)) { writeln(" calling into coroutine..."); - auto v = f(val); + int v; + try { + v = f(val); + } catch (coroutine_error const &e) { + writefln(" coroutine failed: %s", e.what()); + return 0; + } writefln(" called into coroutine which yielded: %s", v); writefln(" call loop iteration %s done", i + 1); writefln(" coroutine dead: %s", !f); @@ -290,6 +296,5 @@ starting main... call loop iteration 6 done coroutine dead: true calling into coroutine... -terminating with uncaught exception of type ostd::coroutine_error: dead coroutine -zsh: abort ./coro + coroutine failed: dead coroutine */