Глобал снаружи вполне. Скорее всего тоже не правильно, потому что эта функция не отдельная, а часть какого-то асинхронного кода. Но само по себе нормально.
>is not safe. Reading and closing the reader can both throw IOExceptions, which are not RuntimeExceptions (caused by programming errors). That means leaving them uncaught exposes your app to crashing from things outside your control.
>is not safe. Reading and closing the reader can both throw IOExceptions, which are not RuntimeExceptions (caused by programming errors). That means leaving them uncaught exposes your app to crashing from things outside your control.
Но я бы сказал, что обработку надо делать снаружи, а не внутри. Но это уже зависит от того, что за обработка
Это кстати выглядит, как костыль, из-за выбранного в котлин дефолта, что все отменяемо по умолчанию. (в каком-нибудь с# нужно всегда явно передавать токен на отмену и проверять его).
Cамое печальное, что я знаю людей которые пару лет пишут на котлин и не знают про него. А потом в проде иногда ошибки их-за того что функция оборвалась на середине и стейт стал не консистентный.
Потому что раньше этот код был синхронный и всегда до конца выполнялся и люди продолжают так мыслить.
Это кстати выглядит, как костыль, из-за выбранного в котлин дефолта, что все отменяемо по умолчанию. (в каком-нибудь с# нужно всегда явно передавать токен на отмену и проверять его).
Cамое печальное, что я знаю людей которые пару лет пишут на котлин и не знают про него. А потом в проде иногда ошибки их-за того что функция оборвалась на середине и стейт стал не консистентный.
Потому что раньше этот код был синхронный и всегда до конца выполнялся и люди продолжают так мыслить.
Как будто таскать повсюду CancellationToken лучше. Вполне норм дефолт.