Робота з помилками
Непойманная ошибка
throw new Error (‘Some error’) - генерация шибки (непойманная ошибка)
try / catch Пойманная ошибка
try { // Code that may throw a runtime error } catch (error) { // Error handling }
try { //код віполнение } catch(error) { //код если ошибка више console.log(error) console.log(error.message) }
catch() ще приймає обїект помилки, тобто
Проброс ошибок - это ошибка при которой код ошибка возвращается коду віше.Т.е. тому коду, который вызвал эту ошибку:
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»)