Echec routine

remarque : Cette routine est toujours prete et se declenche des qu'une erreur apparait dans la ou les routine(s) en cours
remarque : Elle fonctionne avec une liste d'Objets d'Erreurs associes a des solutions
remarque : elle peut traiter plusieurs erreurs differentes en mÍme temps, a des rythmes differents

1 index
     repeter
          in Routine Courante, Erreur
     jusqu'a Erreur = present
     Routine Echouee = Routine Courante

remarque : en cas d'erreur on stoppe momentanement la routine echouee
     pause Routine Echouee

     in Erreur, Motif de l'Erreur, Routine Courante
     out,Motif de l'Erreur
          si Routine Echouee = Routine Courante
          et Erreur Precedente = Motif de l'erreur
          alors routine Solution Absente

     Routine Echouee = Routine Courante
     Erreur Precedente = Motif de l'erreur

remarque : teste si l'erreur est repertoriee

     in Liste des Motifs d'Erreur, Nombre d'Objets d'Erreur
     X=0
     Y=0
     repeter
          X=X+1
          in Liste des Motifs d'Erreur, Objet(X)
               si Motif de l'Erreur = Objet(X)
               alors Y = X
               alors X = Nombre d'Objets d'Erreur
     jusqu'a X = Nombre d'Objets d'Erreur

remarque : si l'erreur n'est pas repertoriee, appel de Solution absente
          si Y = 0
          alors routine Solution Absente

remarque : teste si les solutions proposees sont suffisantes
     in Objet(Y), Nombre de Solutions
     Z = 0
     repeter
          Z = Z + 1
          routine Solution(Z)

remarque : apres l'execution de la Solution, la routine reprend
          reprise Routine Echouee(Erreur)
          in Routine Echouee, Erreur
               si Erreur = absent
               alors index 1
     jusqu'a Z = Nombres de Solutions
     repeter
          reprise Routine Echouee(Erreur)
               si Erreur = absent
               alors index 1

remarque : en dernier recours, invente une solution
          routine Solution Absente
     jusqu'a Erreur = absent

     index 1

     retour