Le type Result
Modéliser la réussite et l’échec
Le type Result 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.
Success ou Failure
De nombreuses opérations peuvent échouer. Le type Result modélise un résultat qui est soit un success contenant une valeur, soit une failure contenant une exception, sans lancer cette exception.
Créer un Success
Encapsulez une valeur dans un résultat réussi avec Result.success(value).
fun main() {
val r: Result<Int> = Result.success(42)
println(r.isSuccess)
println(r.getOrNull())
}Créer une Failure
Représentez une erreur avec Result.failure(exception). Aucune exception n’est lancée tant que vous ne choisissez pas de l’extraire.
fun main() {
val r: Result<Int> = Result.failure(IllegalStateException("bad"))
println(r.isFailure)
println(r.exceptionOrNull()?.message)
}getOrNull et exceptionOrNull
Examinez un résultat en toute sécurité : getOrNull() renvoie la valeur ou null, et exceptionOrNull() renvoie l’erreur ou null.
fun main() {
val ok = Result.success("hi")
val bad = Result.failure<String>(RuntimeException("oops"))
println(ok.getOrNull())
println(bad.exceptionOrNull()?.message)
}getOrDefault
Fournissez une valeur de repli pour les failures avec getOrDefault. C’est plus propre que des vérifications de nullité lorsque vous disposez d’une valeur par défaut pertinente.
fun main() {
val bad: Result<Int> = Result.failure(Exception())
println(bad.getOrDefault(0))
val ok: Result<Int> = Result.success(7)
println(ok.getOrDefault(0))
}getOrElse
getOrElse calcule la valeur de repli à partir de l’exception, ce qui vous permet de réagir différemment selon les erreurs.
fun main() {
val r: Result<Int> = Result.failure(IllegalArgumentException("nope"))
val value = r.getOrElse { e -> if (e is IllegalArgumentException) -1 else -2 }
println(value)
}getOrThrow
Lorsque vous souhaitez récupérer l’exception, getOrThrow() renvoie la valeur ou relance l’exception enregistrée.
fun main() {
val ok = Result.success(10)
println(ok.getOrThrow())
try {
Result.failure<Int>(IllegalStateException("fail")).getOrThrow()
} catch (e: Exception) {
println("caught: " + e.message)
}
}Renvoyer un Result
Une fonction peut renvoyer un Result afin de rendre la failure explicite dans sa signature et d’obliger les appelants à gérer les deux possibilités.
fun parse(s: String): Result<Int> {
val n = s.toIntOrNull()
return if (n != null) Result.success(n)
else Result.failure(NumberFormatException(s))
}
fun main() {
println(parse("123").getOrNull())
println(parse("x").exceptionOrNull()?.message)
}Result ou exceptions
Les exceptions sont invisibles dans les signatures et perturbent le flux de contrôle. Result transforme la failure en une valeur que vous transmettez et transformez comme n’importe quelle autre : elle est explicite, composable et difficile à ignorer.
Quand utiliser Result
Utilisez Result pour les failures récupérables et attendues que vous souhaitez faire gérer aux appelants. Réservez les exceptions aux situations véritablement exceptionnelles et aux erreurs de programmation, comme les violations de contrat.
Une valeur, pas un saut
Le changement essentiel est le suivant : une erreur devient une valeur de retour normale. Vous allez ensuite découvrir runCatching, qui capture automatiquement les exceptions lancées dans un Result.
Vérification rapide
Évaluez votre compréhension du type Result.
Récapitulatif
Vous avez découvert le type Result :
- Création avec
Result.success/Result.failure - Examen avec
getOrNull,exceptionOrNull - Récupération avec
getOrDefault,getOrElse,getOrThrow - Renvoyer le résultat pour rendre la failure explicite
Ensuite : runCatching.
Questions Fréquemment Posées
La leçon « Le type Result » est-elle gratuite ?
Oui — le texte complet de « Le type Result » 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 « Le type Result » ?
Modéliser la réussite et l’échec 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 « Le type Result » ?
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.