Tentative-Récupération

Lorsque le traitement de l'erreur Essayer l'alternative suivante est utilisé avec une référence explicite À, une étape de tentative cible, l'étape est identifiée par son nom. Le plus souvent, la distinction fine entre l'étape cible et son nom n'est pas importante, mais elle peut être exploitée pour fournir une fonctionnalité de gestion des exceptions similaire aux constructions try-catch en Java ou C#.

Dans ces langages de programmation, une section de code entre « try » et « catch » a un traitement spécial des erreurs. Si une erreur est signalée dans cette section (en « émettant' » une « exception » nommée), le fragment de code qui suit le « catch » portant le même nom est exécuté. Les constructions Tentative-Récupération peuvent être imbriquées, et une « exception » est toujours gérée par la construction « catch » la plus intérieur avec un nom correspondant. Par exemple :

try {
   ... code ...
   try {
     ... inner code ...
     throw new E(); // caught by innermost "catch"
   }
   catch (E e) {
     ... inner handling code ...
   }
   ... more code ...
   throw new E(); // caught by outermost "catch"
 }
 catch (E e) {
   ... outer handling code ...
 }

Dans les robots, il est possible de procéder d'une manière similaire avec les Étapes de tentative. Rappelez-vous qu'une référence « À » à une étape de tentative avec un nom donné signifie toujours l'étape antérieure la plus proche avec ce nom (dans le chemin d'exécution actuel). Il est permis d'utiliser le même nom pour plusieurs Étapes de tentative, même dans le même chemin d'exécution. Ainsi, chaque construction tentative-récupération est modélisée avec une étape de tentative ayant le même nom que l' « exception ». L'étape de tentative comporte deux branches : une pour la construction « tentative », et une pour la partie code de la construction « récupération ».


Exemple de robot tentative-récupération

La correspondance entre la syntaxe Java/C# et les termes Design Studio est décrite dans le tableau.

Syntaxe Java/C#

Que faut-il utiliser dans Design Studio

try { ...code... }

La première branche d'une étape de tentative (les étapes correspondent à un code)

Nom d'une exception

Nom d'une étape de tentative

throw new E()

dans le code d'un tentative

Gestion d'une erreur avec « Essayer l'alternative suivante à E »

catch E { ...code... }

La deuxième branche d'une étape de tentative appelée « E » (les étapes correspondent à du code)

L'idée centrale est donc la suivante : Lorsque les Étapes de tentative sont utilisées pour la gestion des erreurs, nommez-les en fonction des situations d'erreur qu'elles traitent. Les avantages sont les suivants :

  • La dénomination permet de clarifier l'objectif de chaque étape de tentative.
  • Lorsque les erreurs sont traitées à un niveau général (avec une étape de tentative plus à gauche dans le robot), il est encore facile de faire des manipulations spécialisées dans certains cas (à l'aide d'une deuxième étape de tentative de même nom).