Manejar excepciones en Kotlin
- Concepto de excepción en Kotlin
- Manejar excepciones no verificadas en Kotlin
- Crear una excepción personalizada en Kotlin
-
Manejar excepciones usando la anotación
@Throws
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:
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:
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:
Haga clic aquí para ver la demostración del código de ejemplo.
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