Kotlin va Java'dagi istisnolar o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Tekshiriladigan (checked) istisnalarni boshqarishda asosiy farq.
Java-da ikki turdagi istisnalar mavjud:
- Tekshiriladigan (Checked Exception):
try-catchblokida yoki metod imzosidathrowskalit so'zi bilan aniq belgilanishi kerak. Misollar:IOException,FileNotFoundException. - Tekshirilmaydigan (Unchecked Exception): aniq belgilash shart emas. Misollar:
RuntimeExceptionva uning subklasslari,Error.
Kotlin-da tekshiriladigan istisnalar yo'q. Kotlin-da barcha istisnalar aslida tekshirilmaydi. Bu kodni soddalashtiradi, chunki try-catch yoki throws ni keng qo'llash shart emas, ayniqsa oddiy operatsiyalar uchun, ular istisno chiqarishi mumkin.
Java misoli:
// Java
public class FileRead {
public void readFile() throws IOException { // Majburiy e'lon qilish
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
}
Kotlin misoli:
// Kotlin
import java.io.File
fun readFile() { // throws e'lon qilish shart emas
File("file.txt").forEachLine {
println(it)
}
}
Tekshiriladigan istisnalar yo'qligiga qaramay, Kotlin hali ham istisnalarni (Java kutubxonalaridan chiqarilganlar kabi) try-catch-finally bloklari yordamida chiqarishi va boshqarishi mumkin. Bu mavjud Java kod bilan moslik uchun.
// Kotlin
import java.io.IOException
fun readFileSafe() {
try {
readFile() // IOException chiqarishi mumkin bo'lgan funksiya chaqiruvi
} catch (e: IOException) {
println("Faylni o'qishda xato: ${e.message}")
} finally {
println("Fayl operatsiyasi tugadi.")
}
}
Xulosa: Kotlin rivojlanishni soddalashtiradi, tekshiriladigan istisnalarni majburan boshqarish shart emasligini olib tashlaydi, o'rniga ish vaqtida yuzaga keladigan istisnalar va standart xato boshqaruvchilarga ko'proq tayanadi.