← Ana Sayfaya Dön

Kotlinde Hata Yakalama

Kategori: Kotlin13 Ocak 2025

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.