THROW

Instruction

Syntaxe

Lève une erreur que reçoit le CATCH englobant le plus proche. Sans CATCH, le programme s’arrête à cette ligne.

THROW <value>

Les éléments

<value>Un texte, un nombre, ou un enregistrement avec un champ message et un champ code facultatif. Un texte ou un nombre devient le message. Un enregistrement fournit son message et son code.

À savoir

  • THROW sans valeur est une erreur de compilation : "THROW requires a value".
  • L’erreur traverse toutes les fonctions jusqu’à un CATCH : une fonction peut lever, et son appelant intercepter.
  • Le name d’une erreur levée par THROW vaut toujours Error. Le code vaut "" sauf si un enregistrement en fournit un.
  • Ne relancez pas avec THROW l’erreur interceptée : le name devient Error et le command est perdu. Utilisez RETHROW pour la transmettre telle quelle.
  • Un THROW dans une tâche n’arrête pas le programme. La tâche est marquée en échec, et l’erreur revient à AWAITTASK ou à TaskResult().

Exemple

FUNCTION Reload(ammo)  IF ammo = 0 THEN THROW "no ammo left"  Console("reloaded")ENDFUNCTIONTRY  Reload(0)CATCH failure  Console(failure.name + ": " + failure.message)   ' Error: no ammo leftENDTRY
Dans le manuel : Erreurs