Sobes.tech
Junior

Cum se gestionează excepțiile în Kotlin?

sobes.tech AI

Răspuns de la AI

În Kotlin, blocurile try, catch și finally sunt utilizate pentru tratarea excepțiilor.

fun divide(a: Int, b: Int): Int {
    try {
        // Cod potențial periculos
        return a / b
    } catch (e: ArithmeticException) {
        // Tratarea excepției specifice
        println("Eroare: împărțirea la zero!")
        return 0
    } catch (e: Exception) {
        // Tratarea excepțiilor generale
        println("A apărut o eroare necunoscută: ${e.message}")
        throw e // Aruncarea din nou a excepției dacă este necesar
    } finally {
        // Cod care se execută în orice caz (indiferent dacă a fost aruncată o excepție sau nu)
        println("Curățarea resurselor sau alte acțiuni finale")
    }
}
  • Blocul try conține codul care poate arunca o excepție.
  • Blocul catch este folosit pentru a captura și trata excepțiile. Se pot folosi mai multe blocuri catch pentru diferite tipuri de excepții. Tipurile de excepții sunt capturate în ordinea în care sunt declarate.
  • Blocul finally conține codul care se execută întotdeauna, indiferent dacă a fost aruncată o excepție sau nu. Acest bloc este adesea folosit pentru eliberarea resurselor.

Spre deosebire de Java, Kotlin nu are excepții "checked" obligatorii. Toate excepțiile în Kotlin sunt "unchecked".

Pentru a arunca excepții, se folosește cuvântul cheie throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Vârsta nu poate fi negativă")
    }
    // ...
}

De asemenea, se pot folosi clase standard de excepții din bibliotecă sau se pot crea propriile clase, moștenind de la Exception sau RuntimeException.