Блок finally
Блок finally используется в конструкции обработки исключений
try-catch в Kotlin. Код внутри этого блока выполняется всегда,
независимо от того, возникло исключение или нет. Это полезно для
освобождения ресурсов (закрытия файлов, соединений с БД и т.д.).
Синтаксис
try {
// Код, который может вызвать исключение
} catch (e: Exception) {
// Обработка исключения
} finally {
// Код, который выполнится в любом случае
}
Пример
Пример с обработкой исключения и блоком finally:
try {
val result = 10 / 0
println(result)
} catch (e: ArithmeticException) {
println("Division by zero")
} finally {
println("This will always execute")
}
Результат выполнения кода:
String "Division by zero"
String "This will always execute"
Пример
Пример без исключения с блоком finally:
try {
val result = 10 / 2
println(result)
} catch (e: ArithmeticException) {
println("Division by zero")
} finally {
println("This will always execute")
}
Результат выполнения кода:
Int 5
String "This will always execute"
Пример
Использование finally без блока catch:
try {
val file = openFile()
// Работа с файлом
} finally {
file.close()
println("File closed")
}
В этом примере файл будет закрыт даже если при работе с ним возникнет исключение.