Sommaire

Gestion des erreurs en Swift

1. Présentation

Dans la gestion des fichiers comme dans d’autres domaines, certaines opérations peuvent échouer, même si Swift contourne certains cas d’erreur à l’aide des valeurs non optionnelles.

Ce chapitre présente ce qu’est une erreur, comment une méthode l’émet et quelles sont les façons d’appeler une méthode risquée.

2. Cas d’exemple

Soit le système d’achat simplifié suivant :

struct Article {  
    let prix: Float  
}

struct PorteMonnaie { 
    let montantDispo: Float 
}

func acheter(_ article: Article, paiement: PorteMonnaie) -> 
PorteMonnaie { 
    let reste = paiement.montantDispo - article.prix 
    return PorteMonnaie(montantDispo: reste) 
}

Cette méthode permet d’acheter un article, elle retourne un objet PorteMonnaie dont le montantDispo est celui du PorteMonnaie passé en paramètre auquel on a retranché le prix de l’Article acheté.

var monPorteMonnaie = PorteMonnaie(montantDispo: 10.0)

var baguette = Article(prix: 1.10) 
var ecranGeant = Article(prix: 899.99) 
var anomalie = Article(prix: -23.0)

monPorteMonnaie = acheter(baguette, paiement: monPorteMonnaie) 
monPorteMonnaie = acheter(ecranGeant, paiement: monPorteMonnaie) 
monPorteMonnaie = acheter(anomalie, paiement: monPorteMonnaie)

Ce code s’exécute sans problème, pourtant ...