finally
- Kotlin kursu
- Başlangıç
- Ders 102/116
- 5 dk
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, BittiHata 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
fun main() {
// Bir bloğu try-catch-finally ile sar; hata ve Bitti yazdır
}Örnek çözüm
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
try {
val x = 1
} ____ {
println("Bitti")
}
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.