Назад к вопросам
JuniorТеорияЧасто
Что выведет программа (строки через пробел)?
enum TextError: Error { case empty }
func letters(in text: String) throws -> Int {
if text.isEmpty { throw TextError.empty }
return text.count
}
do {
print(try letters(in: "ab"))
print(try letters(in: ""))
print("end")
} catch {
print("error")
}2 error
- Ждать
2 error end, считая, что послеcatchблокdoпродолжается. Ошибка пропускает остатокdoнасовсем, а послеcatchпрограмма идёт к строкам под ним. - Ждать одно
error, считая, чтоdoвыполняется, только если ни одна его строка не выбросит ошибку. Строки идут по порядку, и2печатается до ошибки.
- Что напечатает программа, если
print("end")будет стоять после закрывающей скобкиcatch? - Как изменить второй вызов, чтобы пустой текст давал
0, а не уводил вcatch?