Hata yönetimi
- Kotlin kursu
- Başlangıç
- Ders 22/116
- 6 dk
try/catch ile geçersiz girdileri güvenle yakalarsın.
try/catch nedir?
Bazen bir işlem istisna (exception) fırlatabilir; örneğin sıfıra bölme, dosya bulunamaması veya sayı dönüştürme hatası. try/catch ile bu istisnaları yakalayıp programın çökmesini önleyebilirsin.
try {
println(divide(10, 2))
} catch (e: ArithmeticException) {
println("Sıfıra bölme")
}try bloğu riskli işlemi çalıştırır; istisna olursa catch bloğu devreye girer.
finally nedir?
finally bloğu try/catch'ten sonra her durumda çalışır; ister istisna olsun, ister olmasın. Genellikle dosyaları kapatmak veya kaynakları serbest bırakmak için kullanılır.
Kotlin'de use fonksiyonu bu işi otomatik yapsa da, finally hala bilinmesi gereken bir araçtır. Hesap makinesinde doğrudan kullanmayacağız ama temelini bilmek önemli.
Uygulama try/catch ile divide çağrısı
Mevcut main'de println(divide(10, 2)) çağrısını try { ... } catch (e: ArithmeticException) { println("Sıfıra bölme") } içine al. Diğer tüm çağrılar korunsun.
Başlangıç kodu
fun add(a: Int, b: Int): Int {
return a + b
}
fun subtract(a: Int, b: Int): Int {
return a - b
}
fun multiply(a: Int, b: Int): Int {
return a * b
}
fun divide(a: Int, b: Int): Int {
if (b == 0) {
return 0
}
return a / b
}
fun main() {
println("Hesap makinesi")
println(add(5, 3))
println(subtract(5, 3))
println(multiply(5, 3))
println(divide(10, 2))
}Örnek çözüm
fun add(a: Int, b: Int): Int {
return a + b
}
fun subtract(a: Int, b: Int): Int {
return a - b
}
fun multiply(a: Int, b: Int): Int {
return a * b
}
fun divide(a: Int, b: Int): Int {
if (b == 0) {
return 0
}
return a / b
}
fun main() {
println("Hesap makinesi")
println(add(5, 3))
println(subtract(5, 3))
println(multiply(5, 3))
try {
println(divide(10, 2))
} catch (e: ArithmeticException) {
println("Sıfıra bölme")
}
}Beklenen çıktı
Hesap makinesi 8 2 15 5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 try/catch ne yapar?
- Kodu derleyiciye gönderir
- Hataları yakalar ve programın çökmesini önler Doğru cevap
- Döngü başlatır
- Değişken tanımlar
Açıklama: try/catch istisnaları yakalar ve çökmeyi önler.
2 catch bloğunu tamamla
try { println(divide(10, 0)) } ____ (e: ArithmeticException) { println("Sıfıra bölme") }
try { println(divide(10, 0)) } catch (e: ArithmeticException) { println("Sıfıra bölme") }
Açıklama: catch ile istisna yakalanır.
3 İstisna kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
try |
Deneme |
catch |
Yakalama |
finally |
Temizlik |
throw |
Fırlatma |