Junior
Hogyan kezeljük a kivételeket Kotlinben?
sobes.tech MI
Válasz az MI-től
Kotlinban az try, catch és finally blokkokat az exception-ök kezelésére használják.
fun divide(a: Int, b: Int): Int {
try {
// Potenciálisan veszélyes kód
return a / b
} catch (e: ArithmeticException) {
// Specifikus kivétel kezelése
println("Hiba: nullával való osztás!")
return 0
} catch (e: Exception) {
// Általános kivétel kezelése
println("Ismeretlen hiba történt: ${e.message}")
throw e // Ha szükséges, újra dobjuk a kivételt
} finally {
// Kód, ami minden esetben lefut
println("Erőforrások tisztítása vagy más végső műveletek")
}
}
- A
tryblokk tartalmazza azt a kódot, ami kivételt okozhat. - A
catchblokkot arra használjuk, hogy elfogjuk és kezeljük a kivételeket. Többcatchblokk is használható különböző típusú kivételekhez. A kivétel típusokat a deklaráció sorrendjében fogják el. - A
finallyblokk tartalmazza azt a kódot, ami mindig lefut, függetlenül attól, hogy kivétel történt-e vagy sem. Gyakran erőforrások felszabadítására használják.
A Java-tól eltérően, Kotlinban nem kötelező a "checked" kivételek kezelése. Minden kivétel "unchecked".
A kivételek dobásához a throw kulcsszót használjuk:
fun validateAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("A kor nem lehet negatív")
}
// ...
}
Ezen kívül, használhatunk standard könyvtári kivétel osztályokat vagy sajátokat is, amelyek az Exception vagy RuntimeException osztályból származnak.