web-dev-qa-db-fra.com

Swift: aucun appel aux fonctions de lancement ne se produit dans l'expression 'try'

J'essaie de traiter la chaîne et de définir "essayer"

var str = String()
do{
    let str = try self.processMyString(strToProcess)

}catch{

}

Mais je reçois cette erreur:

no calls to throwing functions occur within 'try' expression

Chacun d'entre vous sait pourquoi de cette erreur ou comment puis-je la réparer?

Je vais vraiment apprécier votre aide.

7
user2924482

Si votre fonction peut provoquer des erreurs, définissez-la comme ceci

func canThrowErrors() throws -> String 

comme trouvé ici

Ensuite, vous pouvez utiliser l’essai comme vous l’avez déjà fait.

4
transistor

processMyString n'est pas throw, il n'y a donc aucune raison pour qu'il soit dans un bloc do/catch.

De plus, vous déclarez une constante let locale nommée str qui masque la variable var extérieure nommée str, ce que vous n’avez probablement pas voulu.

Faites juste ceci:

let str = self.processMyString(strToProcess)
1
Alexander