Error handling memisahkan alur normal dari alur penanganan kegagalan. Kotlin tidak membedakan checked dan unchecked exception, tetapi menyediakan try sebagai expression.
Pahami hierarki Throwable, perbedaan Error dan Exception, serta bagaimana Kotlin memperlakukan semua exception sebagai unchecked.
Buka → # try-catchTangkap exception dengan try-catch, pelajari urutan multiple catch clause dari spesifik ke umum, serta peran blok finally yang opsional.
Buka → # try ExpressionGunakan try sebagai expression yang menghasilkan nilai, padukan dengan elvis operator, dan pahami bahwa finally tidak mengubah nilai balik.
Buka → # finally BlockPastikan pembersihan resource selalu jalan dengan blok finally, dan ganti try-with-resources Java dengan extension function .use {}.
Buka → # throw Expressionthrow adalah expression bertipe Nothing yang dapat dipakai di elvis operator, cabang when, dan function dengan return type apa pun.
Buka → # Custom ExceptionsBuat class exception sendiri yang mewarisi Exception atau RuntimeException, tambahkan field konteks, dan teruskan cause dari exception asli.
Buka → # Exception PropagationTelusuri bagaimana exception merambat naik dari function dalam ke pemanggil luar melalui stack unwinding, dan kapan membungkus dengan cause.
Buka → # Checked vs Unchecked ExceptionsPelajari bagaimana Kotlin menghapus pembedaan checked dan unchecked exception warisan Java, dan kapan anotasi @Throws tetap diperlukan.
Buka → # Result Type PatternsGunakan kotlin.Result untuk merepresentasikan nilai sukses atau kegagalan secara eksplisit dengan map, getOrNull, getOrElse, fold, dan recoverCatching.
Buka → # Error vs ExceptionBedakan Error fatal tingkat JVM dari Exception yang dapat dipulihkan, serta pisahkan programming error dari business error.
Buka → # Error Handling Best PracticesRangkum praktik terbaik: fail fast, jangan menelan exception, log dengan konteks, lempar di layer yang tepat, dan pakai Result untuk expected errors.
Buka →