Kotlin və Java-da istisnalar arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Yoxlamalı (checked) istisnaların idarə olunmasında əsas fərq.
Java-da iki növ istisna var:
- Yoxlamalı (Checked Exception): açıq şəkildə
try-catchblokunda və ya metodun imzasındathrowsaçar sözü ilə bildirilir. Nümunələr:IOException,FileNotFoundException. - Yoxlamayan (Unchecked Exception): açıq şəkildə bildirməyə ehtiyac yoxdur. Nümunələr:
RuntimeExceptionvə onun alt sinifləri,Error.
Kotlin-də yoxlamalı istisnalar yoxdur. Kotlin-də bütün istisnalar, mahiyyət etibarilə, yoxlamayanlardır. Bu, kodu sadələşdirir, çünki try-catch və ya throws istifadə etməyə ehtiyac olmadan, rutin əməliyyatlar üçün istisna atıla bilər.
Java nümunəsi:
// Java
public class FileRead {
public void readFile() throws IOException { // Zəruridir
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
}
Kotlin nümunəsi:
// Kotlin
import java.io.File
fun readFile() { // throws bildirməyə ehtiyac yoxdur
File("file.txt").forEachLine {
println(it)
}
}
Yoxlamalı istisnaların olmamasına baxmayaraq, Kotlin hələ də istisnaları (Java kitabxanalarından atılanlar kimi) try-catch-finally blokları ilə atıb idarə edə bilər. Bu, mövcud Java kodu ilə uyğunluq üçün edilir.
// Kotlin
import java.io.IOException
fun readFileSafe() {
try {
readFile() // IOException atə bilən funksiya çağırışı
} catch (e: IOException) {
println("Faylı oxuyarkən xəta: ${e.message}")
} finally {
println("Fayl əməliyyatı başa çatdı.")
}
}
Xülasə: Kotlin inkişafı sadələşdirir, yoxlamalı istisnaları məcburi idarə etmə ehtiyacını aradan qaldırır, daha çox işləmə vaxtı istisnalar və standart səhv idarəetmə mexanizmlərinə güvənir.