Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
obrabotka_oshibok_error_handling_ili_probros_iskljuchenij [2023/10/11 08:20] 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 {\\ | ||
| + | let trueLogin = " | ||
| + | let truePwd = " | ||
| + | |||
| + | guard trueLogin == login else {\\ | ||
| + | throw AuthError.dataNotExists\\ | ||
| + | }\\ | ||
| + | |||
| + | guard truePwd == pwd else {\\ | ||
| + | throw AuthError.wrongPassword\\ | ||
| + | }\\ | ||
| + | |||
| + | print(" | ||
| + | }\\ | ||
| + | var answer = try auth(login: " | ||
| + | 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: " | ||