← Каталог
Обработка ошибок в Swift — `Result` и `throws` — два способа выразить сбой
Фрагмент из «Обработка ошибок в Swift»: `Result` и `throws` — два способа выразить сбой.
func parseAgeResult(from text: String) -> Result<Int, ParseError> {
do {
return .success(try parseAge(from: text))
} catch let error as ParseError {
return .failure(error)
} catch {
return .failure(.notANumber(text))
}
}
switch parseAgeResult(from: "17") {
case .success(let age):
print(age)
case .failure(let error):
print(error.localizedDescription)
} func parseAgeResult(from text: String) -> Result<Int, ParseError> {
do {
return .success(try parseAge(from: text))
} catch let error as ParseError {
return .failure(error)
} catch {
return .failure(.notANumber(text))
}
}
switch parseAgeResult(from: "17") {
case .success(let age):
print(age)
case .failure(let error):
print(error.localizedDescription)
}