Sobes.tech
Junior

Kako obraditi izuzetke u Kotlinu?

sobes.tech АИ

Одговор од АИ

U Kotlinu se za obradu izuzetaka koriste blokovi try, catch i finally.

fun divide(a: Int, b: Int): Int {
    try {
        // Potencijalno opasan kod
        return a / b
    } catch (e: ArithmeticException) {
        // Obrada specifičnog izuzetka
        println("Greška: deljenje nulom!")
        return 0
    } catch (e: Exception) {
        // Obrada opštih izuzetaka
        println("Došlo je do nepoznate greške: ${e.message}")
        throw e // Ako je potrebno, ponovo baciti izuzetak
    } finally {
        // Kod koji se izvršava u svakom slučaju
        println("Čišćenje resursa ili druge završne radnje")
    }
}
  • Blok try sadrži kod koji može izazvati izuzetak.
  • catch blok se koristi za hvatanje i obradu izuzetaka. Može se koristiti više catch blokova za različite tipove izuzetaka. Tipovi izuzetaka se hvataju redom kojim su deklarisani.
  • finally blok sadrži kod koji se uvek izvršava, bez obzira da li je izazvan izuzetak ili ne. Ovaj blok se često koristi za oslobađanje resursa.

Za razliku od Jave, Kotlin nema obavezne "checked" izuzetke. Sve izuzetke u Kotlinu smatraju se "unchecked".

Za bacanje izuzetaka koristi se ključna reč throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Godina ne može biti negativna")
    }
    // ...
}

Takođe, mogu se koristiti standardne klase iz biblioteke ili kreirati sopstvene, nasledjujući od Exception ili RuntimeException.