2 ms·
> Coroutines use unchecked exceptions for control flow That's... horrible. Why can't Kotlin do it the way C# does with heap-allocated state-machines?
by DaiPlusPlus 6y ago
> Coroutines use unchecked exceptions for control flow
That's... horrible.
Why can't Kotlin do it the way C# does with heap-allocated state-machines?
- ragnese 6y agoHonestly, I truly don't know and I don't feel qualified to judge the merits of the two approaches. There could be performance or behavior implications that they just prioritized differently from how C# does it. Or maybe something to do with the Java underpinnings. Are C# promises/whatever cancellable? But, as an "end user", the exception thing drives me absolutely nuts. It wouldn't be nearly as bad if Kotlin either didn't use exceptions for ALL error handling, or even if it had checked exceptions so that "normal" errors would be, mentally, separate from fatal errors and/or coroutine cancellation.
- DaiPlusPlus 6y ago> Are C# promises/whatever cancellable? Yes, but it's opt-in (it requires the author of the async method to add a `CancellationToken` parameter and to respect `IsCancellationRequested`).