Выбор ответа Junior Ошибки спрашивают часто обновлено
Что делает try? в Swift
Вопрос
Что вернёт try? JSONDecoder().decode(User.self, from: data) при ошибке декодирования?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: nil, а сама ошибка будет потеряна. try? превращает результат в опционал: при ошибке nil, при успехе значение.
Варианты ответа
- Пустой
Userсо значениями по умолчанию nil, а сама ошибка будет потерянаправильный ответ- Крэш приложения с текстом ошибки
- Ошибку как значение типа
Error
Разбор
try? превращает результат в опционал: при ошибке nil, при успехе значение. Причина ошибки при этом теряется, поэтому для отладки декодирования try? вреден: вы не узнаете, какое поле сломалось. Крэш даёт try!. Ошибку как значение возвращает Result(catching:).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.