Contenu

# Instruction Resume

Réinitialise les informations d'erreur et indique ce qui est exécuté ensuite.

### Syntaxe :

         Resume [ [0] | label | Next ]

### Paramètres :

0: réinitialise les informations d'erreur et exécute à nouveau l'instruction qui a causé l'erreur. 0 est facultatif.

label: réinitialise les informations d'erreur et reprend l'exécution à l'étiquette spécifiée de la sous routine active.

Next: réinitialise les informations d'erreur et exécute l'instruction suivant celle qui a causé l'erreur.

Les informations d'erreur sont compilées avec les fonctions Erl, Err et Error$.

- Erl: numéro de ligne du module où l'erreur se produit.

- Err: numéro de l'erreur

- Error[$]: description de l'erreur.

L'utilisation de Resume pour réinitialiser les informations d'erreur empêche la propagation de la condition gérée aux routines d'appel.

### Codes d'erreur :

20 reprendre sans erreur

## Exemples :

Les routines de gestion des erreurs typiques sont les suivantes : alerter l'utilisateur, corriger l'erreur, consigner les informations sur les erreurs ou renvoyer des erreurs personnalisées qui fournissent des explications avec des instructions de résolution. Utilisez Resume label lorsque vous avez besoin de tels mécanismes.

          Sub Error_Handling
          try: On Error GoTo catch
              ' code de la routine ici
              Error 91 ' erreur exemple
          finally:
              ' code nettoyé de la routine ici
              Exit Sub
          catch:
              Print Erl, Err, Error$
              Resume finally
          End Sub ' Error_Handling

Utilisez Resume Next, par exemple, lors du signalement d'anomalies rencontrées pour un processus d'itération qui ne doit pas être interrompu. Dans ce cas, plusieurs routines de gestion peuvent être nécessaires.

          Sub Iteration
              planets = Array("☿","♀","♁","♂","♃","♄","⛢","♆")
          try:
              On Error GoTo ReportAndProcessNext
              For ndx = -3 To 11 Step 1
                  MsgBox planets(ndx)
              Next
              On Error GoTo 0 ' Stop error catching
          finally:
              Exit Sub
          ReportAndProcessNext:
              Print "Error "& Err &" at line "& Erl &" - "& Error$
              Resume Next
          End Sub ' Iteration

L'utilisation de Resume sans paramètres pour ré-exécuter l'instruction défectueuse peut s'adapter à certaines situations. Cependant, cela peut provoquer une boucle sans fin.