execstr
execute Scilab code in strings
Syntax
execstr(instr) ierr = execstr(instr,'errcatch' [,msg])
Arguments
- instr
a vector of character strings, Scilab instruction to be executed.
- ierr
an integer, 0 or error number.
- msg
a character string with values
'm'
or'n'
. Default value is'n'
.
Description
Executes the Scilab instructions given in argument
instr
.
Note that instr should not make use of continuation marks (..) |
If the 'errcatch'
flag is not present, error handling works as usual.
If the 'errcatch'
flag is set, and an error is encountered while
executing the instructions defined in instr
, execstr
issues no error message, but aborts execution of the instr
instructions (at the point where the error occurred), and resumes with
ierr
equal to the error number. In this case the display of the
error message is controlled by the msg
option:
- "m"
error message is displayed and recorded.
- "n"
no error message is displayed, but the error message is recorded (see lasterror). This is the default.
ierr = execstr(instr, 'errcatch')
can handle syntactical errors. This is
useful for evaluation of instruction obtained by a query to the user.
Examples
execstr('a=1') // sets a=1. execstr('1+1') // does nothing (while evstr('1+1') returns 2) execstr(['if %t then'; ' a=1'; ' b=a+1'; 'else' ' b=0' 'end']) execstr('a=zzzzzzz','errcatch') execstr('a=zzzzzzz','errcatch','m') //syntax errors execstr('a=1?02','errcatch') lasterror(%t) execstr('a=[1 2 3)','errcatch') lasterror(%t) // variable1 does not exist if execstr('variable1;','errcatch')<>0 then disp("Trigger an error"); else disp("execstr is happy"); end // variable2 exists ... no error is triggered by execstr variable2=[2,3]; if execstr('variable2;','errcatch')<>0 then disp("Trigger an error"); else disp("execstr is happy"); end
See also
Report an issue | ||
<< exec | Advanced functions | feval >> |