Вы находитесь на странице: 1из 5

ОБРАБОТКА

ОШИБОК
Обработка ошибок
• Работа с ошибками (exception):
• «Перебросить» ошибку выше по стеку вызова
• Обработать ошибку в том месте, где она возникла с помощью блока кода
• Обработать ошибку как Optional значение (и проверять на nil)
• Если не нужно отлавливать тип ошибки (т.е. какая именно произошла)

• Не обрабатывать ошибку (указываете, что ее здесь точно не будет)


• Если ошибка все-таки произойдет – возникнет runtime error и процесс выполнения кода остановится

• В Java также существует механизм try-catch


Свои типы ошибок
• В Swift для создания собственных типов ошибок используется enum
• Должен реализовать протокол-маркер Error (не нужно реализовывать методы)
• Типы ошибок указываются в case

• В Java нужно было создавать отдельные классы – более громоздкое решение, разрастается проект
defer
• Аналог finally: defer
• Обязательный блок внутри функции, выполнится даже если возникнет ошибка (закрытие файла,
соединения и пр.)
• Не зависит от расположения внутри метода
• Может быть несколько блоков defer, будут вызываться в обратном порядке
Домашнее задание
• Прочитать
• https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.h
tml

• https://developer.apple.com/documentation/swift/error