Sobes.tech
Junior

¿Cómo manejar las excepciones en Kotlin?

sobes.tech AI

Respuesta de la IA

En Kotlin, se utilizan bloques try, catch y finally para manejar excepciones.

fun divide(a: Int, b: Int): Int {
    try {
        // Código potencialmente peligroso
        return a / b
    } catch (e: ArithmeticException) {
        // Manejo de excepciones específicas
        println("Error: división por cero!")
        return 0
    } catch (e: Exception) {
        // Manejo de excepciones generales
        println("Ocurrió un error desconocido: ${e.message}")
        throw e // Re-lanzar la excepción si es necesario
    } finally {
        // Código que se ejecuta en cualquier caso (independientemente de la excepción)
        println("Limpieza de recursos u otras acciones finales")
    }
}
  • El bloque try contiene el código que puede lanzar una excepción.
  • El bloque catch se usa para capturar y manejar excepciones. Se pueden usar varios bloques catch para diferentes tipos de excepciones. Los tipos de excepciones se capturan en el orden en que se declaran.
  • El bloque finally contiene código que siempre se ejecuta, independientemente de si se lanzó o no una excepción. Este bloque se usa a menudo para liberar recursos.

A diferencia de Java, Kotlin no tiene excepciones obligatorias de manejar ("checked"). Todas las excepciones en Kotlin son "unchecked".

Para lanzar excepciones, se usa la palabra clave throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("La edad no puede ser negativa")
    }
    // ...
}

También se pueden usar clases de excepciones estándar de la biblioteca o crear propias, heredando de Exception o RuntimeException.