Выбор ответа Junior Ошибки обновлено
Сопоставление ошибок в catch
Вопрос
Как поймать только ошибку DecodingError.keyNotFound и получить ключ?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: catch DecodingError.keyNotFound(let key, ). catch принимает паттерн, как case в switch, включая связанные значения enum.
Варианты ответа
catch (DecodingError) keyNotFound(let key) { ... }catch if error == .keyNotFound { ... }catch DecodingError.keyNotFound(let key, _)правильный ответcatch DecodingError { print(error.key) }
Разбор
catch принимает паттерн, как case в switch, включая связанные значения enum. Ключ достаётся через let key. Остальные ошибки уйдут в следующий catch или выше. Варианты со скобками и if не синтаксис Swift, а у DecodingError нет свойства key.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.