Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.1.0 - Français


execstr

exécution d'instructions Scilab contenues dans des chaînes de caractères

Séquence d'appel

execstr(instr)
ierr = execstr(instr, 'errcatch' [,msg])
[ierr, errormsg] = execstr(instr,'errcatch' [,msg])
[ierr, errormsg, callstack] = execstr(instr,'errcatch' [,msg])

Paramètres

instr

vecteur de chaînes de caractères.

ierr

entier, 0 ou numéro de l'erreur.

msg

chaîne de caractères ('m' ou 'n'). La valeur par défaut est 'n'.

errormsg

message d'erreur en cas d'erreur et que le d'argument 'errcatch' est spécifié.

callstack

pile d'appel en cas d'erreur et que le d'argument 'errcatch' est spécifié.

Description

Exécute les instructions Scilab données dans l'argument instr.

Note : les instructions instr ne doivent pas comporter de marques de suite (..).

Si 'errcatch' n'est pas présent dans les arguments, les erreurs sont contrôlées comme d'habitude.

Si 'errcatch' est présent dans les arguments, et qu'une erreur est rencontrée lors de l'évaluation d'un élément de instr, execstr ne produit aucun message d'erreur, mais stoppe l'exécution des instructions stockées dans instr (au point où l'erreur s'est produite), et renvoie dans ierr le numéro de l'erreur. Dans ce cas l'affichage du message d'erreur est contrôlé par l'option msg :

"m"

le message d'erreur est affiché et enregistré

"n"

le message d'erreur n'est pas affiché mais il est enregistré (voir lasterror). Il s'agit du comportement par défaut.

ierr = execstr(instr, 'errcatch') peut gérer les erreurs de syntaxes. Ceci peut être utile pour évaluer les instructions obtenues par une requète à l'utilisateur (interface homme-machine).

Exemples

execstr('a=1') // affecte a=1.

execstr('1+1') // ne fait rien de particulier (alors que evstr('1+1') renvoie 2)

execstr(['if %t then';
         '  a=1';
         '  b=a+1';
         'else'
         ' b=0'
         'end'])

// récupération des erreurs d'exécution
execstr('a=zzzzzzz','errcatch')
execstr('a=zzzzzzz','errcatch','m')

// récupération des erreurs de syntaxe
execstr('a=1?02','errcatch')
lasterror(%t)

execstr('a=[1 2 3)','errcatch')
lasterror(%t)

// variable1 n'existe pas
if execstr('variable1;','errcatch')<>0 then
   disp("Declenche une erreur");
else
   disp("execstr est content");
end

// variable2 existe ... Pas d'erreur dans execstr
variable2=[2,3];
if execstr('variable2;','errcatch')<>0 then
   disp("Declenche une erreur");
else
   disp("execstr est content");
end

//get errormsg if case of error
[_ b] = execstr("acosd(""a"");", "errcatch")

Voir aussi

  • try — mot clé de début du bloc try dans une instruction de contrôle try-catch
  • errclear — efface le dernier rapport d'erreur (si son numéro est celui indiqué)
  • whereami — donne l'arborescence d'appel de l'instruction courante
  • evstr — évalue des expressions Scilab et concatène leurs résultats
Report an issue
<< exec Fonctions avancées feval >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jun 17 17:52:33 CEST 2024