try/catch
- Kotlin kursu
- Başlangıç
- Ders 100/116
- 5 dk
try/catch ile hata yakalamayı öğrenirsin.
try/catch: hataları yakala
Bir kod parçası hata fırlatabilir; try bloğu bu kodu sarar, catch ise hatayı yakalar. Böylece program çökmeden devam eder.
try {
val x = 10 / 0
} catch (e: ArithmeticException) {
println("Hata: ${e.message}")
}try içindeki kod hata verirse, kontrol catch'e geçer. Yakalanan nesne e değişkenine konur; e.message hata iletisini taşır. Uygun exception türünü yakalamak, beklenmedik hataları önler.
Özel exception türleri
Her hata türü farklı bir duruma işaret eder. En sık görülenler: ArithmeticException, NumberFormatException, NullPointerException, IndexOutOfBoundsException.
try {
val n = "abc".toInt()
} catch (e: NumberFormatException) {
println("Sayı değil")
}Tür seçimi, hatayı doğru biçimde ele almak için önemlidir. Bilinmeyen bir hata türü için Exception yakalayabilirsin; ama özel türler daha net bilgi verir. Yanlış tür, hatayı kaçırmaya yol açar.
Uygulama Bölmeyi try/catch ile sar
try bloğu içinde val x = 10 / 0 yaz. ArithmeticException yakala ve println ile "Hata" yazdır.
Başlangıç kodu
fun main() {
// Bir bölme işlemini try içine al; hatayı yakalayıp Hata yazdır
}Örnek çözüm
fun main() {
try {
val x = 10 / 0
} catch (e: ArithmeticException) {
println("Hata")
}
}Beklenen çıktı
Hata
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 catch bloğu ne yapar?
- Hatayı fırlatır
- Hatayı yok sayar zorunlu
- Hatayı yineler
- Hatayı yakalar Doğru cevap
Açıklama: catch, try içinde oluşan hatayı yakalar.
2 Boşluğu doldur: catch yaz
try {
val x = 10 / 0
} ____ (e: ArithmeticException) {
println("Hata")
}
try {
val x = 10 / 0
} catch (e: ArithmeticException) {
println("Hata")
}
Açıklama: catch ile ArithmeticException yakalanır.
3 Exception ve senaryo eşleştir
| Kavram | Anlamı |
|---|---|
ArithmeticException |
Bölme hatası |
NumberFormatException |
Dönüşüm hatası |
IndexOutOfBoundsException |
Dizi sınırı |
NullPointerException |
Boş erişim |