Проброс ошибок - это ошибка при которой код ошибка возвращается коду віше.Т.е. тому коду, который вызвал эту ошибку:

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