Throwing exceptions


Dalam tutorial ini, kita akan membahas tentang cara 'Throwing Exceptions' di Kotlin secara detail.

Apa itu Exception?

Exception adalah kondisi yang menjadikan program tidak berjalan seperti yang diharapkan. Dalam pemrograman, kita sering menghadapi situasi di mana suatu kesalahan mungkin terjadi, dan kita dapat menggunakan exceptions untuk menangani situasi tersebut secara elegan.

Mengapa Menggunakan Exceptions?

  • Pengendalian Kesalahan: Menggunakan exceptions memungkinkan kita untuk menangani kesalahan dengan cara yang terpisah dari logika program utama.
  • Meningkatkan Keterbacaan: Exceptions memberikan cara yang jelas untuk menunjukkan adanya kesalahan tanpa mencemari kode utama.

Cara Menggunakan Throwing Exceptions di Kotlin

1. Menggunakan throw

Di Kotlin, kita dapat melempar (throw) exception menggunakan kata kunci throw. Sintaksnya adalah sebagai berikut:

throw Exception("Pesan kesalahan")

Contoh:

fun divide(a: Int, b: Int): Int {
    if (b == 0) {
        throw IllegalArgumentException("Pembagi tidak boleh nol")
    }
    return a / b
}

fun main() {
    try {
        val result = divide(10, 0)
        println("Hasil: $result")
    } catch (e: IllegalArgumentException) {
        println("Terjadi kesalahan: ${e.message}")
    }
}

2. Membuat Custom Exception

Kotlin memungkinkan kita untuk membuat exception kita sendiri dengan mewarisi dari kelas Exception atau Throwable.

Contoh:

class CustomException(message: String) : Exception(message)

fun riskyOperation() {
    throw CustomException("Operasi berisiko terjadi kesalahan")
}

fun main() {
    try {
        riskyOperation()
    } catch (e: CustomException) {
        println("Terjadi kesalahan: ${e.message}")
    }
}

3. Menangani Exception

Anda dapat menggunakan try-catch untuk menangani exceptions yang mungkin terjadi. Dalam blok try, Anda dapat mengeksekusi kode yang berpotensi menghasilkan kesalahan, dan dalam blok catch, Anda dapat menangani kesalahan tersebut.

Contoh:

fun mayThrowException() {
    throw Exception("Ini adalah contoh pengecualian")
}

fun main() {
    try {
        mayThrowException()
    } catch (e: Exception) {
        println("Caught an exception: ${e.message}")
    }
}

4. Usaha-Akhir (Finally)

Blok finally akan selalu dieksekusi setelah blok try atau catch, terlepas dari apakah ada exception yang terjadi atau tidak.

Contoh:

fun main() {
    try {
        println("Mencoba sesuatu...")
        throw Exception("Contoh kesalahan")
    } catch (e: Exception) {
        println("Menangkap kesalahan: ${e.message}")
    } finally {
        println("Blok Finally dieksekusi")
    }
}

Kesimpulan

Melempar dan menangani exceptions adalah bagian penting dari pemrograman Kotlin. Ini membantu menjaga kontrol atas alur program dan memberikan cara yang bersih untuk menangani kesalahan yang mungkin terjadi.

Semoga tutorial ini bermanfaat! Jika Anda memiliki pertanyaan lebih lanjut tentang Kotlin atau topik lainnya, jangan ragu untuk bertanya.