runCatching
Capturer les exceptions sous forme de valeurs
runCatching est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.
Capturer les exceptions
runCatching exécute un bloc et enveloppe son résultat dans un Result : la valeur renvoyée devient un success et toute exception lancée devient une failure. Aucun mécanisme d’essai et d’interception n’est nécessaire.
Utilisation de base
Transmettez une lambda ; la dernière expression constitue la valeur du success.
fun main() {
val r = runCatching { 10 / 2 }
println(r.isSuccess)
println(r.getOrNull())
}Intercepter une erreur lancée
Lorsque le bloc lance une exception, runCatching la stocke au lieu de la propager.
fun main() {
val r = runCatching { 10 / 0 }
println(r.isFailure)
println(r.exceptionOrNull()?.message)
}Envelopper une analyse risquée
Un usage courant consiste à envelopper les appels susceptibles de lancer une exception, comme l’analyse, afin que la failure devienne une valeur que vous pouvez gérer.
fun main() {
val good = runCatching { "42".toInt() }
val bad = runCatching { "abc".toInt() }
println(good.getOrNull())
println(bad.getOrNull())
}runCatching comme récepteur
Vous pouvez appeler runCatching sur un objet récepteur ; à l’intérieur du bloc, this fait référence à cet objet. C’est utile pour enchaîner des opérations sur une valeur.
fun main() {
val text = " 99 "
val r = text.runCatching { trim().toInt() }
println(r.getOrNull())
}Récupération immédiate
Combinez avec getOrElse pour fournir une valeur de repli directement à l’endroit de l’appel.
fun main() {
val n = runCatching { "oops".toInt() }.getOrElse { -1 }
println(n)
}fold pour les deux branches
fold gère le success et la failure en un seul appel, en renvoyant une valeur unique issue de l’une ou l’autre branche.
fun main() {
val message = runCatching { "50".toInt() }.fold(
onSuccess = { "got " + it },
onFailure = { "error: " + it.message }
)
println(message)
}Refactorisation de l’essai et de l’interception
Là où vous pourriez écrire une structure d’essai et d’interception qui renvoie une valeur, runCatching est plus concis et conserve le résultat sous forme de données.
fun safeDivide(a: Int, b: Int): Result<Int> =
runCatching { a / b }
fun main() {
println(safeDivide(8, 2).getOrNull())
println(safeDivide(8, 0).exceptionOrNull()?.message)
}Attention à la capture trop large
runCatching capture tous les objets pouvant être lancés, y compris ceux que vous ne souhaitez peut-être pas intercepter. Évitez d’envelopper de très grands blocs ; limitez la région capturée et rendez ce choix intentionnel.
Enchaîner les transformations
Comme runCatching produit un Result, vous pouvez immédiatement lui appliquer map ou recover. Nous les étudierons dans la prochaine leçon.
fun main() {
val r = runCatching { "7".toInt() }.map { it * 10 }
println(r.getOrNull())
}Pourquoi c’est utile
runCatching fait le lien entre le code qui lance des exceptions et l’univers de Result fondé sur les valeurs. Il vous permet d’adopter une gestion fonctionnelle des erreurs même lorsque vous appelez des interfaces de programmation qui lancent des exceptions.
Vérification rapide
Évaluez votre compréhension de runCatching.
Récapitulatif
Vous avez découvert runCatching :
- Enveloppe le résultat d’un bloc dans un
Result - Transforme les exceptions lancées en failures
- Se combine avec
getOrElseetfold - Conservez les régions capturées de petite taille
Ensuite : créer des hiérarchies de résultats scellées.
Apprends Kotlin avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 51
- Leçons
- 203
Questions Fréquemment Posées
La leçon « runCatching » est-elle gratuite ?
Oui — le texte complet de « runCatching » 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 « runCatching » ?
Capturer les exceptions sous forme de valeurs 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 2 sur 4.
Combien de temps prend la leçon « runCatching » ?
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.