CodeBlanks Logo Icon CodeBlanks

finally

finally ile temizlik bloğunu öğrenirsin.

finally: her zaman çalışan blok

finally bloğu ister hata olsun ister olmasın her zaman çalışır. Kaynak kapatma veya temizlik için idealdir.

try {
    val x = 10 / 0
} catch (e: ArithmeticException) {
    println("Hata")
} finally {
    println("Bitti")
}
// Hata, Bitti

Hata olsa bile finally çalışır; bu yüzden dosya veya veritabanı gibi kaynakları kapatmak için güvenlidir. catch olmadan da yazılabilir; o zaman yalnız temizlik yapılır. finally atlanamaz.

finally ve kaynak temizliği

Bir kaynağı açtıktan sonra mutlaka kapatmak gerekir. finally, hata olsa bile bu kapanmayı garanti eder.

var acik = true
try {
    // kaynağı kullan
} finally {
    acik = false  // her zaman kapat
}

Hata olsa da olmasa da acik = false çalışır. Böylece kaynak sızıntısı önlenir. finally içinde return bile olsa kapanma gerçekleşir.

Uygulama try-catch-finally kur

Bir try bloğu içinde val x = 10 / 0 yaz. ArithmeticException yakala ve println("Hata") yazdır. Son olarak finally bloğunda println("Bitti") yazdır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir bloğu try-catch-finally ile sar; hata ve Bitti yazdır
}

Örnek çözüm

Main.kt
fun main() {
    try {
        val x = 10 / 0
    } catch (e: ArithmeticException) {
        println("Hata")
    } finally {
        println("Bitti")
    }
}

Beklenen çıktı

Hata
Bitti

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Blok ve görev eşleştir

Kavram Anlamı
try Deneme bloğu
catch Hata yakalama
finally Her zaman çalışır
throw Hata fırlatma

2 Boşluğu doldur: finally yaz

Soru
try {
    val x = 1
} ____ {
    println("Bitti")
}
Cevap
try {
    val x = 1
} finally {
    println("Bitti")
}

Açıklama: finally bloğu her zaman çalışır.

3 finally ne zaman çalışır?

  • Sadece hata olursa
  • Her zaman Doğru cevap
  • Sadece hata olmazsa
  • Asla

Açıklama: finally hata olsa da olmasa da çalışır.

Başlangıç bölümündeki tüm dersler