Выбор ответа Junior Ошибки спрашивают часто обновлено
Вызов бросающей функции в Swift
Вопрос
Как вызвать функцию func load() throws -> Data?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: С try в do/catch, в бросающей функции или через try? Swift требует пометить каждую точку, где может вылететь ошибка, словом try.
Варианты ответа
- Как обычную функцию: ошибка станет исключением в рантайме
- С
tryвdo/catch, в бросающей функции или черезtry?правильный ответ - Только внутри
Task {}, иначе ошибку некому будет перехватить - Через
catch load(), затем проверить результат наnil
Разбор
Swift требует пометить каждую точку, где может вылететь ошибка, словом try. Дальше ошибку либо ловят в do/catch, либо пробрасывают выше (вызывающая функция тоже throws), либо превращают в опционал try?, либо утверждают, что ошибки не будет, try! (крэш, если она всё же случится). Без try код не скомпилируется. Task нужен для async, а не для throws.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.