Finally block


Dalam pemrograman Kotlin, finally block adalah bagian dari struktur penanganan pengecualian yang digunakan untuk mengeksekusi blok kode tertentu terlepas dari apakah pengecualian terjadi atau tidak. Ini sangat berguna untuk memastikan bahwa sejumlah kode tertentu dijalankan, seperti menutup file atau koneksi jaringan.

Struktur Dasar

Struktur dasar dari try, catch, dan finally block dalam Kotlin adalah sebagai berikut:

try {
    // Kode yang mungkin menyebabkan pengecualian
} catch (e: ExceptionType) {
    // Penanganan pengecualian
} finally {
    // Kode yang akan selalu dieksekusi
}

Contoh Penggunaan Finally Block

Berikut adalah contoh di mana finally block digunakan untuk mencetak pesan setelah blok try dan catch:

fun main() {
    try {
        val number = 10 / 0 // Ini akan menyebabkan ArithmeticException
    } catch (e: ArithmeticException) {
        println("Terjadi kesalahan: ${e.message}")
    } finally {
        println("Ini akan selalu dijalankan, terlepas dari pengecualian.")
    }
}

Output

Jika kode di atas dijalankan, outputnya akan seperti ini:

Terjadi kesalahan: / by zero
Ini akan selalu dijalankan, terlepas dari pengecualian.

Kegunaan Finally Block

  1. Menjamin Eksekusi Kode: finally block digunakan untuk menjamin bahwa kode di dalamnya akan dieksekusi meskipun terjadi pengecualian.
  2. Pengelolaan Sumber Daya: Sangat berguna untuk menutup sumber daya seperti database dan file stream.
  3. Pembersihan: Membantu dalam pembersihan sebelum keluar dari blok try atau jika terjadi pengecualian.

Contoh Lanjutan

Contoh di bawah ini menunjukkan penggunaan finally block untuk menutup file stream:

import java.io.File
import java.io.FileNotFoundException

fun main() {
    val fileName = "test.txt"
    var reader: java.io.BufferedReader? = null

    try {
        reader = File(fileName).bufferedReader()
        val line = reader.readLine()
        println(line)
    } catch (e: FileNotFoundException) {
        println("File tidak ditemukan: ${e.message}")
    } finally {
        reader?.close() // Menutup reader di dalam finally block
        println("File Reader ditutup.")
    }
}

Ringkasan

  • finally block selalu dijalankan setelah try dan catch block, baik terjadi pengecualian maupun tidak.
  • Gunakan finally untuk mengeksekusi kode pembersihan atau memastikan bahwa beberapa operasi penting selalu dilakukan.

Dengan tutorial ini, diharapkan Anda dapat memahami dan menggunakan finally block dalam program Kotlin Anda!