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. Meerderecatch-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.