Error Handling
Do Catch
A do block contains throwing work, and catch blocks handle matching errors.
Handle one known failure
do_catch.swift
enum LoginError: Error {
case locked
}
func loginStatus(_ locked: Bool) throws -> String {
if locked {
throw LoginError.locked
}
return "signed in"
}
let accountLocked =
let status: String
do {
status = try loginStatus(accountLocked)
} catch LoginError.locked {
status = "ask for reset"
}
print(status)
enum LoginError: Error {
case locked
}
func loginStatus(_ locked: Bool) throws -> String {
if locked {
throw LoginError.locked
}
return "signed in"
}
let accountLocked =
let status: String
do {
status = try loginStatus(accountLocked)
} catch LoginError.locked {
status = "ask for reset"
}
print(status)
do catch
`do` marks the part of the program that may throw; `catch` describes the recovery path.