Gérer les exceptions dans Kotlin

Kailash Vaviya 15 février 2024
  1. Concept d’exception dans Kotlin
  2. Gérer les exceptions non contrôlées dans Kotlin
  3. Créer une exception personnalisée dans Kotlin
  4. Gérer les exceptions à l’aide de l’annotation @Throws dans Kotlin
Gérer les exceptions dans Kotlin

La gestion des exceptions est un concept fondamental de la plupart des langages de programmation. Il aide à gérer les exceptions afin que le code s’exécute sans aucun problème.

Même Kotlin permet la gestion des exceptions avec l’annotation @Throws. Cet article examinera comment nous pouvons utiliser l’annotation @Throws pour gérer les exceptions dans Kotlin.

Mais avant d’aborder cela, examinons le concept de base des exceptions dans Kotlin.

Concept d’exception dans Kotlin

Les exceptions Kotlin sont similaires aux exceptions Java. Ils sont tous les descendants de la classe Throwable de Kotlin; cependant, il y a aussi quelques différences.

Contrairement à Java, Kotlin n’a aucune exception vérifiée. Ainsi, il n’y a que des exceptions non contrôlées ou d’exécution dans Kotlin.

De plus, Kotlin permet de créer des exceptions personnalisées. Par conséquent, nous pouvons créer notre propre code de gestion des exceptions pour éviter toute erreur d’exécution.

Gérer les exceptions non contrôlées dans Kotlin

Comme indiqué précédemment, les exceptions non vérifiées sont celles qui se produisent pendant l’exécution. Toutes les exceptions Java non vérifiées, y compris ArithmeticException, NullPointerException, NumberFormatException, etc., sont des exemples d’exceptions non vérifiées dans Kotlin.

Nous pouvons gérer une exception non vérifiée dans Kotlin en utilisant le bloc try-catch et le mot-clé finally.

Voici un exemple de code pour illustrer les exceptions non contrôlées.

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.");
   }

}

Production:

Exemple d&rsquo;exception non cochée dans Kotlin

Cliquez ici pour vérifier la démo de l’exemple de code.

Créer une exception personnalisée dans Kotlin

Nous pouvons également créer des exceptions personnalisées dans Kotlin en utilisant le mot-clé throw. Créons un code dans lequel nous déclarons une variable entière.

Nous vérifierons alors si le nombre est égal ou supérieur à 18. Si c’est le cas, nous imprimerons un message indiquant : "You are eligible to vote." ; sinon, nous lancerons un message d’erreur personnalisé.

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)

Production:

Exemple d&rsquo;exception personnalisée dans Kotlin

Cliquez ici pour vérifier la démo de l’exemple de code.

Gérer les exceptions à l’aide de l’annotation @Throws dans Kotlin

Bien qu’il n’y ait pas d’exceptions vérifiées, nous pouvons toujours les gérer dans Kotlin. Nous pouvons le faire en utilisant l’annotation d’exception Kotlin @Throws.

L’annotation @Throws est utile pour l’interopérabilité Java. Par conséquent, s’il existe des codes d’exception vérifiés que nous devons convertir en Java, nous pouvons utiliser l’annotation @Throws pour la machine JVM.

Voici un exemple de code pour démontrer la même chose.

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()
    }
}

Production:

Utilisation de l&rsquo;annotation @Throws pour la gestion des exceptions dans Kotlin

Cliquez ici pour vérifier la démo de l’exemple de code.

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