Documentation de Gambas - /lang/catch

/lang/catch
Le page anglaise est plus récente.

# CATCH

SUB Function ( ... ) ... CATCH ... END

Cette instruction indique le début de la partie gestion d'erreurs d'une fonction ou d'une procédure.

La partie capture (catch) est exécutée quand une erreur est détectée entre le début d'une fonction et sa fin. Cette erreur peut être générée par la fonction elle même, ou par n'importe quelle autre fonction appellée pendant son exécution, à condition que cette fonction appellée secondairement n'ait pas de partie catch elle même : plus la partie capture est profonde, plus elle est prioritaire.

Si une erreur est générée pendant l'exécution de la partie capture, elle est normalement propagée. La partie capture ne se protège pas elle même !

Si il y a une partie "finally" dans la fonction, elle doit précéder la partie de capture. Voir FINALLY pour plus de détails.

### Exemples

    ' Affiche un fichier à l'écran

    SUB PrintFile(FileName AS STRING)

      DIM hFile AS File
      DIM sLig AS STRING

      OPEN FileName FOR READ AS #hFile

      WHILE NOT EOF(hFile)
        LINE INPUT #hFile, sLig
        PRINT sLig
      WEND

    FINALLY ' Toujours exécuté, même si une erreur est détectée

      CLOSE #hFile

    CATCH ' Exécuté seulement si il y a une erreur

      PRINT "Je ne peux pas afficher le fichier "; FileName

    END

### Voir aussi

- Gestion d'Erreurs