Manejar excepciones en Kotlin

Kailash Vaviya 15 febrero 2024
  1. Concepto de excepción en Kotlin
  2. Manejar excepciones no verificadas en Kotlin
  3. Crear una excepción personalizada en Kotlin
  4. Manejar excepciones usando la anotación @Throws en Kotlin
Manejar excepciones en Kotlin

El manejo de excepciones es un concepto fundamental de la mayoría de los lenguajes de programación. Ayuda a manejar las excepciones para que el código se ejecute sin ningún problema.

Incluso Kotlin permite el manejo de excepciones con la anotación @Throws. Este artículo analizará cómo podemos usar la anotación @Throws para manejar las excepciones en Kotlin.

Pero antes de entrar en eso, veamos el concepto básico de excepciones en Kotlin.

Concepto de excepción en Kotlin

Las excepciones de Kotlin son similares a las excepciones de Java. Son todos los descendientes de la clase Throwable en Kotlin; sin embargo, también hay algunas diferencias.

A diferencia de Java, Kotlin no tiene excepciones marcadas. Por lo tanto, solo hay excepciones no verificadas o de tiempo de ejecución en Kotlin.

Además, Kotlin permite crear excepciones personalizadas. Por lo tanto, podemos crear nuestro propio código de manejo de excepciones para evitar cualquier error de tiempo de ejecución.

Manejar excepciones no verificadas en Kotlin

Como se indicó anteriormente, las excepciones no verificadas son aquellas que ocurren durante el tiempo de ejecución. Todas las excepciones no verificadas de Java, incluidas ArithmeticException, NullPointerException, NumberFormatException, etc., son ejemplos de excepciones no verificadas en Kotlin.

Podemos manejar una excepción no verificada en Kotlin usando el bloque try-catch y la palabra clave finally.

Aquí hay un código de ejemplo para demostrar excepciones no verificadas.

fun main(args: Array<String>) {

    try {
        val i:Int = 12;
        val v:String = "Hello!";
        v.toInt();
   }
   catch(e:Exception) {
        e.printStackTrace();
   }

   finally {
        println("This is an example of unchecked exception handling using the try-catch block.");
   }

}

Producción:

Ejemplo de excepción no verificada en Kotlin

Haga clic aquí para ver la demostración del código de ejemplo.

Crear una excepción personalizada en Kotlin

También podemos crear excepciones personalizadas en Kotlin usando la palabra clave throw. Vamos a crear un código donde declaramos una variable entera.

A continuación, comprobaremos si el número es igual o superior a 18. Si lo es, imprimiremos un mensaje que diga: "You are eligible to vote."; de lo contrario, lanzaremos un mensaje de error personalizado.

fun main(args: Array<String>) {
    val v:Int;
    v = 16;
    if(v >= 18)
    {
        println("Welcome!! You are eligible to vote.")
    }

    else
    {
        //throwing custom exception using the throw keyword
        throw customExceptionExample("Sorry! You have to wait to cast a vote.")
    }
}

//custom exception class
class customExceptionExample(message: String) : Exception(message)

Producción:

Ejemplo de excepción personalizada en Kotlin

Haga clic aquí para ver la demostración del código de ejemplo.

Manejar excepciones usando la anotación @Throws en Kotlin

Aunque no hay excepciones verificadas, aún podemos manejarlas en Kotlin. Podemos hacerlo usando la anotación de excepción de Kotlin @Throws.

La anotación @Throws es útil para la interoperabilidad de Java. Por lo tanto, si hay códigos de excepción marcados que necesitamos convertir a Java, podemos usar la anotación @Throws para la máquina JVM.

Aquí hay un código de ejemplo para demostrar lo mismo.

import java.io.*
import kotlin.jvm.Throws

fun main(args: Array<String>) {
    val va=0
    var res=0
    try {
        res=va/0 // Since nothing is divisible by 0, it will throw an exception
    } catch (excep: Exception) {

        // While this is an Airthmetic exception,
        // we will throw a NullPointerException using the function call
        excep().throwJavaChecked()
    }
}
class excep{
    @Throws(NullPointerException::class)
    fun throwJavaChecked() {
        throw NullPointerException()
    }
}

Producción:

Uso de la anotación @Throws para el manejo de excepciones en Kotlin

Haga clic aquí para ver la demostración del código de ejemplo.

Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn