Блок try и catch в Kotlin
Конструкция try-catch делит участок кода
на попытку выполнения и реакцию на сбой.
В try размещают команды, которые могут
завершиться исключением. В catch - код,
который выполнится, если исключение действительно
возникло.
try {
// code that may fail
} catch (e: SomeException) {
// handle the failure
}
Обратимся к элементу списка по неверному индексу
без обработки - программа упадет. С catch
можно вывести понятное сообщение:
val nums = listOf(1, 2, 3)
try {
println(nums[10])
} catch (e: IndexOutOfBoundsException) {
println("index out of range")
}
Если в try исключения не было, блок
catch пропускается. После пары try-catch
выполнение идет дальше, как после обычной команды.
val nums = listOf(5, 6, 7)
try {
println(nums[0])
} catch (e: IndexOutOfBoundsException) {
println("index out of range")
}
println("done")
Переменная в catch хранит объект исключения.
Через e.message можно вывести текст ошибки,
который сформировала среда выполнения.
Даны два целых числа a и b.
Поделите a на b внутри try.
При делении на ноль выведите строку
"division by zero" в catch.
Дан список целых чисел. Запросите у пользователя
индекс. Выведите элемент списка по этому индексу
в try. При неверном индексе выведите
"bad index".
Дана строка text. Преобразуйте ее в целое
число в блоке try.
При ошибке формата выведите "not a number".