В Swift ошибки отлавливаются с помощью системы обработки ошибок, основанной на использовании ключевых слов throw, throws, try и блока do-catch.
Объявление функций, которые могут выбрасывать ошибки: Используется ключевое слово throws после параметров функции.
swift
Вызов функций, которые могут выбрасывать ошибки: Используется ключевое слово try.
swift
Перехват отдельных типов ошибок: В блоке catch можно указать конкретный тип ошибки для перехвата.
swift
defer блок: Выполняется непосредственно перед выходом из текущей области видимости, независимо от того, было ли исключение или нет. Часто используется для очистки ресурсов.
swift
Опциональный try?: Возвращает опциональное значение. Если функция выбрасывает ошибку, try? возвращает nil.
swift
Принудительное извлечение try!: Используется, когда вы уверены, что ошибка не произойдет. Если ошибка все же произойдет, приложение аварийно завершится. Используйте с осторожностью.
swift
Система на основе do-catch является более явным и безопасным способом обработки ошибок по сравнению с традиционными исключениями в других языках, поскольку она требует явного объявления функций, которые могут выбрасывать ошибки (throws), и явной обработки этих ошибок при вызове (try, do-catch).