Junior
Jak obsługiwać wyjątki w Kotlinie?
sobes.tech AI
Odpowiedź od AI
W Kotlinie do obsługi wyjątków używa się bloków try, catch i finally.
fun divide(a: Int, b: Int): Int {
try {
// Potencjalnie niebezpieczny kod
return a / b
} catch (e: ArithmeticException) {
// Obsługa specyficznego wyjątku
println("Błąd: dzielenie przez zero!")
return 0
} catch (e: Exception) {
// Obsługa ogólnych wyjątków
println("Wystąpił nieznany błąd: ${e.message}")
throw e // Rzucenie wyjątku ponownie, jeśli konieczne
} finally {
// Kod, który zawsze się wykonuje (niezależnie od wyjątku)
println("Czyszczenie zasobów lub inne działania końcowe")
}
}
- Blok
tryzawiera kod, który może wywołać wyjątek. - Blok
catchsłuży do przechwytywania i obsługi wyjątków. Można użyć wielu blokówcatchdo obsługi różnych typów wyjątków. Typy wyjątków są przechwytywane w kolejności ich deklaracji. - Blok
finallyzawiera kod, który zawsze jest wykonywany, niezależnie od tego, czy wyjątek został rzucony, czy nie. Ten blok jest często używany do zwalniania zasobów.
W przeciwieństwie do Java, Kotlin nie ma obowiązkowych "checked" wyjątków. Wszystkie wyjątki w Kotlinie są "unchecked".
Aby rzucić wyjątek, używa się słowa kluczowego throw:
fun validateAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("Wiek nie może być ujemny")
}
// ...
}
Można również używać standardowych klas wyjątków z biblioteki lub tworzyć własne, dziedzicząc po Exception lub RuntimeException.