==== Проброс ошибок - это ошибка при которой код ошибка возвращается коду віше.Т.е. тому коду, который вызвал эту ошибку: ==== func auth (login: String, pwd: String) throws {\\ let trueLogin = "Vasya"\\ let truePwd = "123"\\ guard trueLogin == login else {\\ throw AuthError.dataNotExists\\ }\\ guard truePwd == pwd else {\\ throw AuthError.wrongPassword\\ }\\ print("Vse ok! Privet admin!")\\ }\\ var answer = try auth(login: "Dima", pwd: "123")\\ print(answer)\\ В примере выше ошибка, тип не до конца рассказал ==== do - catch ==== import Foundation //Создание ошибки enum AuthError:Error { case wrongPassword case dataNotExists case serverLost } //Проброс ошибок - это ошибка при которой код ошибка возвращается коду віше.Т.е. тому коду, который вызвал эту ошибку func auth (login: String, pwd: String) throws { let trueLogin = "Vasya" let truePwd = "123" guard trueLogin == login else { throw AuthError.dataNotExists } guard truePwd == pwd else { throw AuthError.wrongPassword } print("Vse ok! Privet admin!") } //do - catch import Foundation\\ //Создание ошибки\\ enum AuthError:Error {\\ case wrongPassword\\ case dataNotExists\\ case serverLost\\ }\\ //Проброс ошибок - это ошибка при которой код ошибка возвращается коду віше.Т.е. тому коду, который вызвал эту ошибку\\ func auth (login: String, pwd: String) throws {\\ let trueLogin = "Vasya"\\ let truePwd = "123"\\ guard trueLogin == login else {\\ throw AuthError.dataNotExists\\ }\\ guard truePwd == pwd else {\\ throw AuthError.wrongPassword\\ }\\ print("Vse ok! Privet admin!")\\ }\\ //do - catch\\ do {\\ try auth(login: "Vasya", pwd: "1123")\\ } catch AuthError.dataNotExists {\\ print ("Ne tot login")\\ } catch AuthError.wrongPassword {\\ print ("Ne tot password")\\ }catch {\\ print ("Drygie oshibki")\\ } \\ ==== Конвертация в опционал ==== try? auth(login: "Dima", pwd: "123")\\ По сути проверяеш отработало как надо или вернуло nill\\ ==== Утверждение безошибочности ==== try! auth(login: "Dima", pwd: "123")\\