Выбор ответа Junior Ошибки спрашивают часто обновлено

Вызов бросающей функции в Swift

Вопрос

Как вызвать функцию func load() throws -> Data?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: С try в do/catch, в бросающей функции или через try? Swift требует пометить каждую точку, где может вылететь ошибка, словом try.

Варианты ответа

  1. Как обычную функцию: ошибка станет исключением в рантайме
  2. С try в do/catch, в бросающей функции или через try?правильный ответ
  3. Только внутри Task {}, иначе ошибку некому будет перехватить
  4. Через catch load(), затем проверить результат на nil

Разбор

Swift требует пометить каждую точку, где может вылететь ошибка, словом try. Дальше ошибку либо ловят в do/catch, либо пробрасывают выше (вызывающая функция тоже throws), либо превращают в опционал try?, либо утверждают, что ошибки не будет, try! (крэш, если она всё же случится). Без try код не скомпилируется. Task нужен для async, а не для throws.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.