| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| reference [2026/07/18 20:27] – [invoke] root | reference [2026/07/27 20:44] (Version actuelle) – [Fonctions] root |
|---|
| |
| ==== except ==== | ==== except ==== |
| | |
| Cette instruction marque le début du bloc exception et la fin du bloc de traitement du programme ou d'un sous-programme.\\ | Cette instruction marque le début du bloc exception et la fin du bloc de traitement du programme ou d'un sous-programme.\\ |
| Si l'exécuteur de traitement arrive à l'instruction //except// sans exception, le programme //saute// à l'instruction [[#endsub|endsub]] ou [[#end|end]], retourne à l'appelant, et se termine dans le cas du programme principal.\\ | Si l'exécuteur de traitement arrive à l'instruction //except// sans exception, le programme //saute// à l'instruction [[#endsub|endsub]] ou [[#end|end]], retourne à l'appelant, et se termine dans le cas du programme principal.\\ |
| Si une exception survient dans le bloc de traitement, due à une autre instruction ou [[#throw|throw]], le programme saute automatiquement à la première ligne qui suit //except//. Une exception qui survient dans le bloc exception fait réagir le programme de la même manière que l'instruction [[#throw|throw]] : le code de la nouvelle exception est pris en compte et le programme saute à l'instruction [[#endsub|endsub]] ou [[w:instr:end|end]]. L'exception //remonte// dans le programme appelant et le fait arriver dans son bloc exception, etc. Enfin, uniquement dans le bloc exception, l'instruction [[#catch|catch]] permet d'annuler l'exception, et de revenir à l'appelant sans erreur.\\ | Si une exception survient dans le bloc de traitement, due à une autre instruction ou [[#throw|throw]], le programme saute automatiquement à la première ligne qui suit //except//. Une exception qui survient dans le bloc exception fait réagir le programme de la même manière que l'instruction [[#throw|throw]] : le code de la nouvelle exception est pris en compte et le programme saute à l'instruction [[#endsub|endsub]] ou [[:w:instr:end|]]. L'exception //remonte// dans le programme appelant et le fait arriver dans son bloc exception, etc. Enfin, uniquement dans le bloc exception, l'instruction [[#catch|catch]] permet d'annuler l'exception, et de revenir à l'appelant sans erreur.\\ |
| Dans les bloc exceptions, la variable système [[#varsys|@except]] donne le numéro de l'exception en cours (de 1 à 16 777 215). Mais attention, lors du retour au shell appelant, le code attendu par le shell est sur 8 bits : le code retour envoyé risque ne pas être celui voulu. | Dans les bloc exceptions, la variable système [[#varsys|@except]] donne le numéro de l'exception en cours (de 1 à 16 777 215). Mais attention, lors du retour au shell appelant, le code attendu par le shell est sur 8 bits : le code retour envoyé risque ne pas être celui voulu. |
| | |
| <code wlang> | <code wlang> |
| begin test | begin test |
| <instructions> ; gestion des exceptions | <instructions> ; gestion des exceptions |
| end | end |
| | |
| </code> | </code> |
| | |
| |
| ==== foreach in like ==== | ==== foreach in like ==== |
| |
| ===== Fonctions ===== | ===== Fonctions ===== |
| Dans les expressions, utilisées lors des [[#let|affectations]] de variable et des tests ([[#ifthen|if then]]), un certain nombre de fonctions sont disponibles. | |
| | Dans les expressions, utilisées lors des [[#let|affectations]] de variable et des tests ([[#ifthen|if then]], [[#breakon|breakon]], [[#continueon|continueon]], [[#returnon|returnon]]), un certain nombre de fonctions sont disponibles. |
| | |
| ==== abs ==== | ==== abs ==== |
| Renvoie la valeur absolue de son paramètre. Le paramètre est automatiquement converti en numérique, en générant une exception si le contenu n'est pas numérique. | Renvoie la valeur absolue de son paramètre. Le paramètre est automatiquement converti en numérique, en générant une exception si le contenu n'est pas numérique. |