Kotlin:
Obsługa błędów
Jak to zrobić:
Kotlin zapewnia try, catch, finally oraz throw do zarządzania błędami. Oto jak ich użyć:
fun main() {
val licznik = 10
val mianownik = 0
try {
val wynik = licznik / mianownik
println("Wynik: $wynik")
} catch (e: ArithmeticException) {
println("Nie można dzielić przez zero, kolego.")
} finally {
println("To się stanie niezależnie od wszystkiego.")
}
}Wynik:
Nie można dzielić przez zero, kolego.
To się stanie niezależnie od wszystkiego.Jeśli coś pójdzie nie tak w bloku try, wykonanie przeskakuje do catch. Łapie on konkretny błąd, który został rzucony (ArithmeticException w tym przypadku). Blok finally jest wykonywany po nich - bez względu na wynik.
Wnikliwie
Blok try-catch jest używany od dawnych dni programowania – to jak sieć bezpieczeństwa. Kotlin oferuje również throw do ręcznego rzucania wyjątkiem, a także finally dla kodu, który musi zostać wykonany - często jest to praca porządkowa.
Alternatywy obejmują typ Result oraz try Kotlin jako wyrażenie.
val wynik: Result<Int> = try {
Result.success(licznik / mianownik)
} catch (e: ArithmeticException) {
Result.failure(e)
}To podejście zwraca obiekt Result – otrzymujesz albo sukces, albo porażkę, bez dramatu nieobsłużonego wyjątku.
Implementacja w Kotlin jest schludna, ponieważ można używać try jako wyrażenia, co oznacza, że zwraca wartość. Takie wybory sprawiają, że obsługa błędów w Kotlinie jest dość wszechstronna. Chodzi o wybór odpowiedniego narzędzia do pracy, tak jak w warsztacie.
Zobacz również
- Dokumentacja Kotlin dotycząca Wyjątków: Obsługa wyjątków Kotlin
- Dokumentacja typu
ResultKotlin: Result Kotlin -Efektywne Java, 3. wydanie, autorstwa Joshuy Bloch – świetne spojrzenie na wyjątki, aczkolwiek specyficzne dla Javy.