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-catchbloğunda veyathrowsanahtar kelimesiyle metod imzasında bildirilmesi gerekir. Örnekler:IOException,FileNotFoundException. - Kontrol edilmeyen (Unchecked Exception): açıkça bildirilmesine gerek yoktur. Örnekler:
RuntimeExceptionve 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.