Error handling memisahkan alur normal dari alur penanganan kegagalan. Kotlin tidak membedakan checked dan unchecked exception, tetapi menyediakan try sebagai expression.

# Exception Fundamentals

Pahami hierarki Throwable, perbedaan Error dan Exception, serta bagaimana Kotlin memperlakukan semua exception sebagai unchecked.

Buka →
# try-catch

Tangkap exception dengan try-catch, pelajari urutan multiple catch clause dari spesifik ke umum, serta peran blok finally yang opsional.

Buka →
# try Expression

Gunakan try sebagai expression yang menghasilkan nilai, padukan dengan elvis operator, dan pahami bahwa finally tidak mengubah nilai balik.

Buka →
# finally Block

Pastikan pembersihan resource selalu jalan dengan blok finally, dan ganti try-with-resources Java dengan extension function .use {}.

Buka →
# throw Expression

throw adalah expression bertipe Nothing yang dapat dipakai di elvis operator, cabang when, dan function dengan return type apa pun.

Buka →
# Custom Exceptions

Buat class exception sendiri yang mewarisi Exception atau RuntimeException, tambahkan field konteks, dan teruskan cause dari exception asli.

Buka →
# Exception Propagation

Telusuri bagaimana exception merambat naik dari function dalam ke pemanggil luar melalui stack unwinding, dan kapan membungkus dengan cause.

Buka →
# Checked vs Unchecked Exceptions

Pelajari bagaimana Kotlin menghapus pembedaan checked dan unchecked exception warisan Java, dan kapan anotasi @Throws tetap diperlukan.

Buka →
# Result Type Patterns

Gunakan kotlin.Result untuk merepresentasikan nilai sukses atau kegagalan secara eksplisit dengan map, getOrNull, getOrElse, fold, dan recoverCatching.

Buka →
# Error vs Exception

Bedakan Error fatal tingkat JVM dari Exception yang dapat dipulihkan, serta pisahkan programming error dari business error.

Buka →
# Error Handling Best Practices

Rangkum praktik terbaik: fail fast, jangan menelan exception, log dengan konteks, lempar di layer yang tepat, dan pakai Result untuk expected errors.

Buka →