Sobes.tech
Middle

Kotlin ve Java'daki istisnalar arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kontrol edilen (checked) istisnaların işlenmesinde temel fark.

Java'da iki tür istisna vardır:

  • Kontrol edilen (Checked Exception): açıkça try-catch bloğunda veya throws anahtar kelimesiyle metod imzasında bildirilmesi gerekir. Örnekler: IOException, FileNotFoundException.
  • Kontrol edilmeyen (Unchecked Exception): açıkça bildirilmesine gerek yoktur. Örnekler: RuntimeException ve alt sınıfları, Error.

Kotlin'de kontrol edilen istisnalar yoktur. Kotlin'teki tüm istisnalar özünde kontrol edilmez. Bu, kodu basitleştirir çünkü rutin işlemler için try-catch veya throws kullanmaya gerek kalmaz.

Java'daki örnek:

// Java
public class FileRead {
    public void readFile() throws IOException { // Zorunludur
        BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        reader.close();
    }
}

Kotlin'de örnek:

// Kotlin
import java.io.File

fun readFile() { // throws bildirmeye gerek yok
    File("file.txt").forEachLine {
        println(it)
    }
}

Kontrol edilen istisnaların olmamasına rağmen, Kotlin yine de istisnaları (Java kütüphanelerinden atılanlar gibi) try-catch-finally blokları kullanarak atabilir ve işleyebilir. Bu, mevcut Java koduyla uyumluluk içindir.

// Kotlin
import java.io.IOException

fun readFileSafe() {
    try {
        readFile() // IOException atabilecek fonksiyon çağrısı
    } catch (e: IOException) {
        println("Dosya okunurken hata: ${e.message}")
    } finally {
        println("Dosya işlemi tamamlandı.")
    }
}

Özetle: Kotlin, zorunlu kontrol edilen istisnaları ele alma ihtiyacını ortadan kaldırarak, çalışma zamanında oluşan istisnalara ve standart hata işleyicilere daha çok güvenerek geliştirmeyi kolaylaştırır.