Карточка Middle Ошибки обновлено
Отмена задачи и ошибки
Вопрос
Как отмена Task связана с ошибками?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Отмена кооперативная: задача сама проверяет Task.isCancelled или вызывает try Task.checkCancellation(), которая бросает CancellationError. Многие системные async API (URLSession, Task.sleep) при отмене бросают ошибку сами.
Ответ
Отмена кооперативная: задача сама проверяет Task.isCancelled или вызывает try Task.checkCancellation(), которая бросает CancellationError. Многие системные async API (URLSession, Task.sleep) при отмене бросают ошибку сами.
Разбор
CancellationError (и URLError.cancelled) обычно не показывают пользователю: это не сбой, а ожидаемый уход с экрана.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Ошибки»
- assert, precondition и fatalError
- Сопоставление ошибок в catch
- Сколько стоят ошибки в Swift
- Порядок выполнения defer
- Конвертация между Result и throws
- Задача на Swift: калькулятор в обратной польской записи с ошибками
- Задача на Swift: валидация формы регистрации
- Формы try в Swift