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])

## 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'`.

## 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

## Voir aussi

- try
- errclear
- whereami
- evstr