Sobes.tech
Junior

Hoe ga je om met uitzonderingen in Kotlin?

sobes.tech AI

Antwoord van AI

In Kotlin worden de blokken try, catch en finally gebruikt voor het afhandelen van uitzonderingen.

fun divide(a: Int, b: Int): Int {
    try {
        // Potentieel gevaarlijke code
        return a / b
    } catch (e: ArithmeticException) {
        // Afhandeling van specifieke uitzondering
        println("Fout: delen door nul!")
        return 0
    } catch (e: Exception) {
        // Algemene uitzondering afhandeling
        println("Er is een onbekende fout opgetreden: ${e.message}")
        throw e // Herhaal de uitzondering indien nodig
    } finally {
        // Code die altijd wordt uitgevoerd (ongeacht de uitzondering)
        println("Bronnen opruimen of andere afsluitende acties")
    }
}
  • De try-blok bevat code die een uitzondering kan veroorzaken.
  • Het catch-blok wordt gebruikt om uitzonderingen op te vangen en af te handelen. Meerdere catch-blokken kunnen worden gebruikt voor verschillende typen uitzonderingen. De typen worden in de volgorde van hun declaratie opgevangen.
  • Het finally-blok bevat code die altijd wordt uitgevoerd, ongeacht of er een uitzondering is opgetreden of niet. Dit blok wordt vaak gebruikt om bronnen vrij te geven.

In tegenstelling tot Java heeft Kotlin geen verplichte "checked" uitzonderingen. Alle uitzonderingen in Kotlin zijn "unchecked".

Om uitzonderingen te werpen, wordt het sleutelwoord throw gebruikt:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Leeftijd kan niet negatief zijn")
    }
    // ...
}

Ook kunnen standaard exception-klassen uit de bibliotheek worden gebruikt of eigen klassen worden gemaakt die erven van Exception of RuntimeException.