Junior
Kotlin'de istisnaları nasıl işleriz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de istisnaları işlemek için try, catch ve finally blokları kullanılır.
fun divide(a: Int, b: Int): Int {
try {
// Potansiyel olarak tehlikeli kod
return a / b
} catch (e: ArithmeticException) {
// Belirli istisnaların işlenmesi
println("Hata: sıfıra bölme!")
return 0
} catch (e: Exception) {
// Genel istisnaların işlenmesi
println("Bilinmeyen bir hata oluştu: ${e.message}")
throw e // Gerekirse istisnayı yeniden fırlat
} finally {
// Her durumda çalıştırılan kod (istisna olup olmamasına bakılmaksızın)
println("Kaynakların temizlenmesi veya diğer sonlandırıcı işlemler")
}
}
trybloğu, istisna oluşturabilecek kodu içerir.catchbloğu, istisnaları yakalamak ve işlemek için kullanılır. Birden fazlacatchbloğu, farklı türdeki istisnaları işlemek için kullanılabilir. İstisna türleri, bildirim sırasına göre yakalanır.finallybloğu, her zaman çalıştırılan kodu içerir, istisna olup olmamasına bakılmaksızın. Bu blok genellikle kaynakların serbest bırakılması için kullanılır.
Java'dan farklı olarak, Kotlin'de zorunlu olarak işlenmesi gereken ("checked") istisnalar yoktur. Kotlin'deki tüm istisnalar "unchecked"'dir.
İstisnaları fırlatmak için throw anahtar kelimesi kullanılır:
fun validateAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("Yaş negatif olamaz")
}
// ...
}
Ayrıca, standart kütüphanedeki istisna sınıflarını kullanabilir veya Exception veya RuntimeException'dan türeyen kendi özel sınıflarınızı oluşturabilirsiniz.