try как выражение в Kotlin
В Kotlin конструкция try-catch может
быть выражением: последнее значение
в try или в catch становится
результатом всей конструкции. Его можно
сразу присвоить переменной.
val result = try {
// success value
} catch (e: SomeException) {
// fallback value
}
Преобразование строки в число с запасным значением при ошибке:
val raw = "42"
val num = try {
raw.toInt()
} catch (e: NumberFormatException) {
0
}
println(num)
Если строка не число, в переменную попадет
0 из catch:
val raw = "oops"
val num = try {
raw.toInt()
} catch (e: NumberFormatException) {
0
}
println(num)
В обеих ветках тип результата должен быть
совместим. Для целых чисел из try и
catch обычно возвращают Int.
Блок finally значения для выражения
не задает - он только выполняет побочные команды.
val items = listOf(1, 2, 3)
val indexText = "1"
val value = try {
items[indexText.toInt()]
} catch (e: NumberFormatException) {
-1
} catch (e: IndexOutOfBoundsException) {
-2
}
println(value)
Дана строка s. Присвойте переменной
n результат try: при успешном
s.toInt() - это число, при
NumberFormatException - -1.
Выведите n.
Создайте функцию parseIndex со строкой
text. Она должна возвращать Int
из try-catch: число при успехе или
0 при NumberFormatException.