Sobes.tech
Junior

Androidдеги каталардын иерархиясын билесиңби?

sobes.tech AI

AIден жооп

Ооба:

Androidда, ошондой эле Javaда, каталардын хиерархиясы Throwable классына негизделген. Анын мурас алгандар Error жана Exception:

  • Error: Көбүнчө программаны калыбына келтире албай турган олуттуу көйгөйлөрдү көрсөтөт (мисалы, JVM көйгөйлөрү).
  • Exception: Исключительные кырдаалдарды көрсөтөт, алар программалар тарабынан иштетилиши мүмкүн. Алар бөлүнөт:
    • Checked Exceptions: Компилятор талап кылган каталар (мисалы, IOException). Түздөн-түз Exceptionден мурас алат.
    • Unchecked Exceptions: Иштөө учурунда пайда болгон каталар, компилятор талап кылбайт, аны ачык иштетүү керек (мисалы, NullPointerException, ArrayIndexOutOfBoundsException). RuntimeExceptionтен мурас алат, ал Exceptionтен мурас алат.

Негизги класстар хиерархиясында:

  • java.lang.Throwable
    • java.lang.Error
      • java.lang.OutOfMemoryError
      • java.lang.StackOverflowError
      • ...
    • java.lang.Exception
      • Checked Exceptions (түздөн-түз Exceptionтен)
        • java.io.IOException
        • java.lang.ClassNotFoundException
        • ...
      • java.lang.RuntimeException
        • java.lang.NullPointerException
        • java.lang.ArrayIndexOutOfBoundsException
        • java.lang.IllegalArgumentException
        • ...

Исключение иштетүүнүн мисалы:

// Kotlin
fun readFile(path: String) {
    try {
        // файлды окууга аракет кылуу
        val fileContent = java.io.File(path).readText()
        println(fileContent)
    } catch (e: java.io.IOException) {
        // киргизүү/чыгуу каталарын иштетүү
        println("Файлды окуудагы катасы: ${e.message}")
        e.printStackTrace() // стек трассасын чыгарыңыз
    } catch (e: Exception) {
        // башка бардык исключенияларды иштетүү
        println("Башка каталар болду: ${e.message}")
    } finally {
        // бул блок ар дайым ишке ашат, каталарга карабастан
        println("Файлды окуу аяктады")
    }
}