Ответ 1
Из documentation:
Обработка ошибок
Обработка ошибок - это процесс реагирования и восстановления ошибки в вашей программе. Swift предоставляет первоклассную поддержку для метания, ловушки, размножения и манипулирования восстанавливаемыми ошибок во время выполнения.
...
Ошибки представления и метания
В Swift ошибки представлены значениями типов, которые соответствуют протокол
ErrorType
. Этот пустой протокол указывает, что тип может для обработки ошибок.
(Примечание: ErrorType
было переименовано в Error
в Swift 3)
Итак, при try/catch
вы обрабатываете ошибки Swift (значения типов, соответствующие протоколу ErrorType
), которые throw
n.
Это полностью не связано с ошибками времени выполнения и исключениями времени выполнения
(а также не связан с NSException
из библиотеки Foundation).
Обратите внимание, что в документации Swift по обработке ошибок даже не используется слово "исключение", за единственным исключением (!) в (выделение мое) в:
Примечание
Обработка ошибок в Swift напоминает обработку исключений в других языков, с использованием ключевых слов try, catch и throw. В отличие от обработка исключений на многих языках, включая Objective-C -error обработка в Swift не предполагает разворачивания стека вызовов, процесс которые могут быть дорогостоящими. Таким образом, производительность характеристики высказывания броска сопоставимы с характеристиками return.
Развертывание опций, которые nil
не throw
a
Быстрая ошибка (которая может быть распространена) и не может быть обработана с помощью
<Т29 > .
Вы должны использовать известные методы, такие как
необязательное связывание, необязательное связывание, проверка на nil
и т.д.