Sobes.tech
Junior

როგორ მართოთ გამონაკლისები Kotlin-ში?

sobes.tech AI

პასუხი AI-სგან

Kotlin-ში გამონაკლისების მართვა ხორციელდება try, catch და finally ბლოკების გამოყენებით.

fun divide(a: Int, b: Int): Int {
    try {
        // საშიში კოდი
        return a / b
    } catch (e: ArithmeticException) {
        // სპეციფიკური გამონაკლისის დამუშავება
        println("შეცდომა: ნულზე გაყოფა!")
        return 0
    } catch (e: Exception) {
        // ზოგადი გამონაკლისების დამუშავება
        println("უცნობი შეცდომა: ${e.message}")
        throw e // საჭიროების შემთხვევაში გამონაკლისის გადაგდება
    } finally {
        // კოდი, რომელიც ყოველთვის შესრულდება
        println("რესურსების გაწმენდა ან სხვა საბოლოო მოქმედებები")
    }
}
  • try ბლოკში იმყოფება კოდი, რომელიც შეიძლება გამოიწვიოს გამონაკლისი.
  • catch ბლოკი გამოიყენება გამონაკლისების დასაჭერად და დამუშავებისთვის. შესაძლებელია რამდენიმე catch ბლოკის გამოყენება სხვადასხვა ტიპის გამონაკლისებისთვის. გამონაკლისების ტიპები იჭერიან მათი გამოქვეყნების წესით.
  • finally ბლოკში იმყოფება კოდი, რომელიც ყოველთვის შესრულდება, გამონაკლისის არსებობის მიუხედავად. ეს ბლოკი ხშირად გამოიყენება რესურსების გათავისუფლებისთვის.

განსხვავებით Java-სგან, Kotlin-ი არ მოითხოვს "checked" გამონაკლისების დამუშავებას. ყველა გამონაკლისი Kotlin-ში არის "unchecked".

გამონაკლისის გასატანად გამოიყენება throw საკვანძო სიტყვა:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("ასაკი არ შეიძლება იყოს უარყოფითი")
    }
    // ...
}

ასევე, შესაძლებელია გამოიყენოთ სტანდარტული კლასები გამონაკლისებისთვის ან შექმნათ საკუთარი, მემკვიდრეობით Exception ან RuntimeException-დან.