Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
obrabotka_oshibok_error_handling_ili_probros_iskljuchenij [2023/10/11 08:23] oresh.dm |
obrabotka_oshibok_error_handling_ili_probros_iskljuchenij [2023/10/11 09:04] (текущий) oresh.dm |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | //Проброс ошибок - это ошибка при которой код ошибка возвращается коду віше.Т.е. тому коду, который вызвал эту ошибку | + | ==== Проброс ошибок - это ошибка при которой код ошибка возвращается коду віше.Т.е. тому коду, который вызвал эту ошибку: ==== |
| - | func auth (login: String, pwd: String) throws { \\ | + | func auth (login: String, pwd: String) throws {\\ |
| let trueLogin = " | let trueLogin = " | ||
| let truePwd = " | let truePwd = " | ||
| Строка 17: | Строка 18: | ||
| var answer = try auth(login: " | var answer = try auth(login: " | ||
| print(answer)\\ | print(answer)\\ | ||
| + | |||
| + | В примере выше ошибка, | ||
| + | |||
| + | ==== do - catch ==== | ||
| + | |||
| + | |||
| + | import Foundation | ||
| + | |||
| + | // | ||
| + | enum AuthError: | ||
| + | case wrongPassword | ||
| + | case dataNotExists | ||
| + | case serverLost | ||
| + | } | ||
| + | |||
| + | // | ||
| + | |||
| + | func auth (login: String, pwd: String) throws { | ||
| + | let trueLogin = " | ||
| + | let truePwd = " | ||
| + | |||
| + | guard trueLogin == login else { | ||
| + | throw AuthError.dataNotExists | ||
| + | } | ||
| + | |||
| + | guard truePwd == pwd else { | ||
| + | throw AuthError.wrongPassword | ||
| + | } | ||
| + | |||
| + | print(" | ||
| + | } | ||
| + | |||
| + | //do - catch | ||
| + | import Foundation\\ | ||
| + | |||
| + | // | ||
| + | enum AuthError: | ||
| + | case wrongPassword\\ | ||
| + | case dataNotExists\\ | ||
| + | case serverLost\\ | ||
| + | }\\ | ||
| + | |||
| + | // | ||
| + | |||
| + | func auth (login: String, pwd: String) throws {\\ | ||
| + | let trueLogin = " | ||
| + | let truePwd = " | ||
| + | |||
| + | guard trueLogin == login else {\\ | ||
| + | throw AuthError.dataNotExists\\ | ||
| + | }\\ | ||
| + | |||
| + | guard truePwd == pwd else {\\ | ||
| + | throw AuthError.wrongPassword\\ | ||
| + | }\\ | ||
| + | |||
| + | print(" | ||
| + | }\\ | ||
| + | |||
| + | //do - catch\\ | ||
| + | do {\\ | ||
| + | try auth(login: " | ||
| + | } catch AuthError.dataNotExists {\\ | ||
| + | print ("Ne tot login" | ||
| + | } catch AuthError.wrongPassword {\\ | ||
| + | print ("Ne tot password" | ||
| + | }catch {\\ | ||
| + | print (" | ||
| + | } \\ | ||
| + | |||
| + | |||
| + | ==== Конвертация в опционал ==== | ||
| + | try? auth(login: " | ||
| + | |||
| + | По сути проверяеш отработало как надо или вернуло nill\\ | ||
| + | |||
| + | ==== Утверждение безошибочности ==== | ||
| + | try! auth(login: " | ||