0Pricing
Kotlin Academy · Leçon

try/catch/finally comme expression

Utilisez try-catch comme expression pour renvoyer des valeurs depuis du code susceptible de produire des erreurs.

try/catch/finally comme expression est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.

try est une expression

Dans Kotlin, try/catch est une expression — elle renvoie une valeur. La dernière expression du bloc try ou catch constitue le résultat.

try/catch de base

Placez le code susceptible de lancer une exception dans un bloc try ; gérez les exceptions dans catch.

fun main() {
    try {
        val n = "abc".toInt()
        println(n)
    } catch (e: NumberFormatException) {
        println("Not a number: ${e.message}")
    }
}

try renvoie une valeur

Affectez le résultat d’un try/catch à une variable. La valeur correspond à ce que produit le bloc correspondant.

fun main() {
    val n: Int = try {
        "42".toInt()
    } catch (e: NumberFormatException) {
        -1
    }
    println(n) // 42
}

try dans le corps d’une fonction

Vous pouvez utiliser try comme corps d’une fonction dont le corps est une expression.

fun parseOrDefault(s: String, default: Int): Int = try {
    s.toInt()
} catch (e: NumberFormatException) {
    default
}
fun main() {
    println(parseOrDefault("42", 0))   // 42
    println(parseOrDefault("abc", 0))  // 0
}

Plusieurs clauses catch

Énumérez plusieurs clauses catch pour différents types d’exceptions. La première correspondance l’emporte.

fun main() {
    val result: String = try {
        val list = listOf(1)
        list[5].toString()
    } catch (e: IndexOutOfBoundsException) {
        "index out of bounds"
    } catch (e: Exception) {
        "other error"
    }
    println(result)
}

Bloc finally

finally s’exécute toujours — il sert au nettoyage. Il n’affecte PAS la valeur renvoyée par l’expression try.

fun main() {
    val n: Int = try {
        "42".toInt()
    } catch (e: NumberFormatException) {
        -1
    } finally {
        println("cleanup runs")
    }
    println("value = $n")
}

try avec plusieurs instructions

Utilisez un bloc contenant plusieurs instructions ; la valeur est celle de la dernière expression.

fun main() {
    val result: String = try {
        val n = 10 / 2
        val s = "Result is $n"
        s.uppercase()
    } catch (e: Exception) {
        "ERROR"
    }
    println(result) // RESULT IS 5
}

Intercepter plusieurs types

Kotlin ne prend pas en charge la syntaxe multi-catch de Java (catch (A | B)). Utilisez un supertype commun ou des clauses catch distinctes.

fun parse(s: String): Int = try {
    s.toInt()
} catch (e: RuntimeException) { // covers NumberFormatException etc.
    -1
}
fun main() {
    println(parse("42"))
    println(parse("nope"))
}

L’ordre des clauses catch est important

Énumérez les exceptions spécifiques avant leurs supertypes — sinon le supertype intercepte l’exception en premier.

fun main() {
    try {
        throw NumberFormatException("oops")
    } catch (e: NumberFormatException) {
        println("specific: ${e.message}")
    } catch (e: Exception) {
        println("generic")
    }
}

Renvoyer une valeur depuis try

Vous pouvez effectuer un retour anticipé depuis try — le bloc finally s’exécute malgré tout.

fun process(x: Int): String {
    return try {
        require(x > 0) { "must be positive" }
        "ok: $x"
    } catch (e: IllegalArgumentException) {
        "error: ${e.message}"
    } finally {
        println("processing done")
    }
}
fun main() {
    println(process(5))
    println(process(-1))
}

Anti-pattern : catch vide

Les blocs catch vides dissimulent les erreurs. Au minimum, journalisez l’exception ou relancez-la.

fun main() {
    try {
        "abc".toInt()
    } catch (e: NumberFormatException) {
        // BAD: silently swallow
    }
    println("continued")
}

Vérification rapide

En Kotlin, quelle valeur produit une expression try/catch ?

Récapitulatif

try/catch est une expression : elle renvoie une valeur. Énumérez les exceptions spécifiques avant les supertypes, utilisez finally pour le nettoyage et évitez les blocs catch vides. Utilisez-la comme corps d’une fonction ou pour attribuer une valeur par défaut en cas d’erreur.

Questions Fréquemment Posées

La leçon « try/catch/finally comme expression » est-elle gratuite ?

Oui — le texte complet de « try/catch/finally comme expression » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « try/catch/finally comme expression » ?

Utilisez try-catch comme expression pour renvoyer des valeurs depuis du code susceptible de produire des erreurs. Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Kotlin Academy ?

Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « try/catch/finally comme expression » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?

Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. try/catch/finally comme expression
  2. Créer des classes d’exception personnalisées
  3. runCatching et Result
  4. Relancer des exceptions et chaînage des exceptions
← Retour à Kotlin Academy