Блок finally

Блок finally используется в конструкции обработки исключений try-catch в Kotlin. Код внутри этого блока выполняется всегда, независимо от того, возникло исключение или нет. Это полезно для освобождения ресурсов (закрытия файлов, соединений с БД и т.д.).

Синтаксис

kotlintry {
  // Код, который может вызвать исключение
} catch (e: Exception) {
  // Обработка исключения
} finally {
  // Код, который выполнится в любом случае
}

Пример

Пример с обработкой исключения и блоком finally:

kotlintry {
  val result = 10 / 0
  println(result)
} catch (e: ArithmeticException) {
  println("Division by zero")
} finally {
  println("This will always execute")
}

Результат выполнения кода:

kotlinString "Division by zero"
String "This will always execute"

Пример

Пример без исключения с блоком finally:

kotlintry {
  val result = 10 / 2
  println(result)
} catch (e: ArithmeticException) {
  println("Division by zero")
} finally {
  println("This will always execute")
}

Результат выполнения кода:

kotlinInt 5
String "This will always execute"

Пример

Использование finally без блока catch:

kotlintry {
  val file = openFile()
  // Работа с файлом
} finally {
  file.close()
  println("File closed")
}

В этом примере файл будет закрыт даже если при работе с ним возникнет исключение.

Смотрите также

  • try,
    блок для выполнения кода, который может вызвать исключение
  • catch,
    блок для обработки исключений
  • throw,
    оператор для явного выброса исключения