Сервер ответил 500, а ветка обработки ошибки не сработала
URLSession.shared.dataTask(with: request) { data, response, error in
if let error {
self.showError(error)
return
}
self.render(data)
}.resume()
Сервер отвечает статусом 500 и телом с описанием ошибки. Пользователю показывается пустой или поломанный экран, алерта нет. Почему?
- data будет nil, поэтому render получает пустоту — нужно просто проверить data на nil
- URLSession вернёт error с кодом 500, но showError не сработает из-за раннего return
- Параметр error сообщает только о транспортных сбоях; HTTP-статус проверяют у HTTPURLResponse
- Задача завершается ошибкой только при включённом waitsForConnectivity, поэтому нужно включить его в конфигурации сессии
