Kotlinde Hata Yakalama
Hata Yakalama
Kotlin'de, hata ayıklama yaparken genellikle try-catch bloklarını kullanırız.
Bu bloklar, programın çalışırken hata meydana gelmesi durumunda, hatayı yakalamamıza ve uygun bir şekilde işlem yapmamıza olanak tanır.
Aşağıdaki örnekte, bir string değerini integer'a dönüştürmeye çalışacağız ve dönüşüm başarılı olursa sonucu döndüreceğiz, başarısız olursa hata mesajı basacağız.
fun intOrNullFonksiyonumuz(str: String): Int? {
return try {
// String'i Int'e dönüştürmeye çalışıyoruz
str.toInt()
} catch (e: NumberFormatException) {
// Eğer string geçerli bir sayıya dönüşemezse, hata mesajı gösteriyoruz
println("Geçersiz giriş: $str sayıya dönüştürülemedi.")
null
} catch (e: Exception) {
// Diğer beklenmedik hatalar için genel bir catch bloğu
e.printStackTrace()
null
}
}
fun main() {
// Geçerli bir sayı ile test
val sonuc = intOrNullFonksiyonumuz("10")
println("Sonuç 1: $sonuc") // 10 döner
// Geçersiz bir değer ile test
val sonuc2 = intOrNullFonksiyonumuz("bilo")
println("Sonuç 2: $sonuc2") // null döner
}
try-catch
blokları ile hata yakalama işlemi bu şekilde yapılır. try ile işlemi başlatırız ve eğer bir sorun oluşursa catch bloğu ile bu hatayı yakalarız.
toInt()
fonksiyonu geçerli bir sayı ile karşılaşmadığında NumberFormatException
hatası fırlatır. Biz de bu hatayı özel olarak yakalayıp kullanıcıyı bilgilendiriyoruz.
Not: If-else blok yapısı gibi hangi tür hata olduğunu anlamak için birden fazla catch bloğu kullanılabilir.
Throw Kullanımı
Kotlin'de, hata oluştuğunda throw
ile exception fırlatılabilir.
Genellikle try-catch blokları ile birlikte kullanılır, ancak throw fonksiyonu hatayı kendimiz fırlatmak için de kullanılabilir.
fun kontrolEt(numara: Int) {
if (numara < 0) {
throw IllegalArgumentException("Negatif sayı geçersiz!")
} else {
println("Geçerli sayı: $numara")
}
}
fun main() {
try {
kontrolEt(-5) // Burada exception fırlatılır
} catch (e: IllegalArgumentException) {
println("Hata: {e.message}") //Süslü parantezden önce $ işareti var.
}
}
Not: throw ile fırlatılan hata, catch bloğu ile yakalanır ve ilgili mesaj ekrana yazdırılır.
Özet
-
Kotlin'de hata yakalama için try-catch blokları kullanılır.
-
try bloğu ile işlem başlatılır, eğer hata oluşursa catch bloğu ile hata yakalanır.
-
throw ile hata kendimiz de hatayı fırlatabiliriz.
-
catch bloğu ile hata yakalanır ve ilgili mesaj ekrana yazdırılır.