Swift оборачивает вызов в do/catch, а приложение всё равно падает при ошибке сети
// commonMain
class OrdersRepository {
suspend fun load(): List<Order> {
val response = client.get("/orders")
if (!response.status.isSuccess()) throw ApiException(response.status.value)
return response.body()
}
}
do { orders = try await repository.load() } catch { showError(error) }
При ответе 500 iOS-приложение аварийно завершается, до catch дело не доходит. Что добавить?
- Аннотацию @Throws(ApiException::class)
- Блок try/catch вокруг вызова в Swift
- Наследование ApiException от Error
- Модификатор open у класса репозитория
