Kotlin жана Javaдагы катаалдык айырмасы эмнеде?
sobes.tech AI
AIден жооп
Негизги айырмасы текшерилүүчү (checked) исключенияларды иштетүүдө:
Javaда эки түрдүү исключения бар:
- Текшерилүүчү (Checked Exception):
try-catchблокунда ачык иштетүү жеthrowsсөзү менен методуна билдирүү талап кылынат. Мисалдар:IOException,FileNotFoundException. - Текшерилбеген (Unchecked Exception): ачык иштетүүнү талап кылбайт. Мисалдар:
RuntimeExceptionжана анын подкласстары,Error.
Kotlinда текшерилүүчү исключениялар жок. Бардык исключениялар негизинен текшерилбеген деп саналат. Бул кодду жөнөкөйлөтөт, анткени try-catch же throws колдонуу керек эмес, рутиналык операциялар үчүн, алар исключение чыгара алат:
Javaда мисал:
// Java
public class FileRead {
public void readFile() throws IOException { // Мыйзамдуу түрдө билдирүү керек
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
}
Kotlinда мисал:
// Kotlin
import java.io.File
fun readFile() { // throws деп билдирүү керек эмес
File("file.txt").forEachLine {
println(it)
}
}
Текшерилүүчү исключениялар жоктугуна карабастан, Kotlin дагы да алардын чыгышы жана иштетилиши мүмкүн (Java китепканаларынан чыгарыла тургандар сыяктуу), try-catch-finally блоктору аркылуу. Бул учурдагы Java коду менен шайкештикти камсыз кылуу үчүн:
// Kotlin
import java.io.IOException
fun readFileSafe() {
try {
readFile() // IOException чыгара турган функцияны чакыруу
} catch (e: IOException) {
println("Error reading file: ${e.message}")
} finally {
println("File operation finished.")
}
}
Жыйынтык: Kotlin иштеп чыгуу процессин жеңилдетет, текшерилүүчү исключенияларды милдеттүү түрдө иштетүүнү жокко чыгарып, көбүнесе рунтайм-исключенияларга жана стандарттык каталарды иштетүүгө негизделет.