Junior
Jak zacházet s výjimkami v Kotlinu?
sobes.tech AI
Odpověď od AI
V Kotlinu se pro zpracování výjimek používají bloky try, catch a finally.
fun divide(a: Int, b: Int): Int {
try {
// Potenciálně nebezpečný kód
return a / b
} catch (e: ArithmeticException) {
// Zpracování specifické výjimky
println("Chyba: dělení nulou!")
return 0
} catch (e: Exception) {
// Zpracování obecných výjimek
println("Nastala neznámá chyba: ${e.message}")
throw e // Pokud je potřeba, znovu vyvolat výjimku
} finally {
// Kód, který se provede za všech okolností
println("Uvolnění zdrojů nebo jiné závěrečné akce")
}
}
- Blok
tryobsahuje kód, který může vyvolat výjimku. - Blok
catchse používá k zachycení a zpracování výjimek. Lze použít více blokůcatchpro různé typy výjimek. Typy výjimek jsou zachyceny v pořadí jejich deklarace. - Blok
finallyobsahuje kód, který se provede vždy, bez ohledu na to, zda byla výjimka vyvolána nebo ne. Tento blok se často používá k uvolnění zdrojů.
Na rozdíl od Javy, Kotlin nemá povinné "checked" výjimky. Všechny výjimky v Kotlinu jsou "unchecked".
Pro vyvolání výjimky se používá klíčové slovo throw:
fun validateAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("Věk nesmí být záporný")
}
// ...
}
Také je možné používat standardní třídy výjimek z knihovny nebo vytvářet vlastní, děděním od Exception nebo RuntimeException.