Formation PUB900 : Développer une application pour iPhone avec SwiftUI, 2026 Le langage Swift (référence)

62.11 try, try? et try!


Lorsqu’une fonction peut lancer une erreur (elle contient une instruction throw), Swift oblige à utiliser le mot-clé try lors de son appel.

try

Il est possible de capturer l'erreur en faisant précéder l'appel par  try et en plaçant le tout dans un bloc do...catch.

Swift

do {
  let resultat = try fonctionQuiPeutLancerUneErreur()
  // ici, on sait qu'aucune erreur n'a été lancée
} catch {
  // ici, on peut réagir à l'erreur
}

Si vous omettez de placer le try dans un bloc do...catch, vous obtiendrez l'erreur « Errors thrown from here are not handled ».

try?

Dans le cas où il n'est pas nécessaire de réagir à l'erreur, il est possible d'utiliser try?. On omettra alors le do et le catch.

Swift

let resultat = try? fonctionQuiPeutLancerUneErreur()   // ici, resultat est d'un type optionnel.

Dans cet exemple, le résultat sera nil si la fonction lance une erreur.

try!

Dans une situation où il est certain qu'aucune erreur ne sera lancée, il est possible d'utiliser try!.

Ce sera le cas, par exemple, lorsqu'on travaille avec des données codées en dur.

Attention : si jamais une erreur était levée pour une raison à laquelle le développeur n'a pas pensé, le code plantera.

Il faut donc réserver l'utilisation de try! aux situations où aucune condition externe (réseau, utilisateur, fichier, API, etc.) ne peut générer d'erreur.

Swift

let json = ...   // ici, on crée une chaîne JSON qui respecte la structure de Item
let item = try! JSONDecoder().decode(Item.self, from: json)

 

 

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre