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 levée entre le début d'une fonction et sa fin. Cette erreur peut être levée par la fonction elle-même, ou par n'importe quelle autre fonction appelée pendant son exécution, à condition que cette fonction appelé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 levé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 !
S'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
hFile = OPEN FileName FOR READ
WHILE NOT EOF(hFile)
LINE INPUT #hFile, sLig
PRINT sLig
WEND
FINALLY ' Toujours exécuté, même si une erreur est levée. Attention : FINALLY doit précéder CATCH !
CLOSE #hFile
CATCH ' Exécuté seulement s'il y a une erreur
PRINT "Je ne peux pas afficher le fichier "; FileName
END
Voir aussi