execstr
исполняет Scilab-код, заданный в строках
Синтаксис
execstr(instr) ierr = execstr(instr,'errcatch' [,msg])
Аргументы
- instr
вектор символьных строк, Scilab-инструкции, которые нужно исполнить.
- ierr
целое число, 0 или номер ошибки.
- msg
символьная строка со значениями
'm'
или'n'
. Значение по умолчанию -'n'
.
Описание
Исполняет Scilab-инструкции, указанные в аргументе
instr
.
Заметьте, что инструкции instr не должны использовать символы продолжения (..) |
Если флаг 'errcatch'
не указан, то обработка ошибок ведётся как обычно.
Если указан флаг 'errcatch'
, и во время исполнения инструкций в instr
произойдёт ошибка, то функция execstr
не выдаст сообщения об ошибке, но прекратит исполнение инструкций instr
(в том месте, где произошла ошибка), и вернёт номер ошибки ierr
. В этом случае отображение ошибки управляется опцией msg
:
- "m"
сообщение об ошибке выводится на экран и записывается.
- "n"
сообщение об ошибке не отображается, однако записывается (see lasterror). Это значение по умолчанию.
ierr = execstr(instr, 'errcatch')
может
обрабатывать синтаксические ошибки. Это полезно для
выполнения инструкций, полученных по запросу пользователя.
Примеры
execstr('a=1') // устанавливает a=1. execstr('1+1') // ничего не делает (тогда как evstr('1+1') возвращает 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 не существует if execstr('variable1;','errcatch')<>0 then disp("Взведена ошибка"); else disp("execstr полна счастья"); end // variable2 существует ... execstr не взводит ошибки variable2=[2,3]; if execstr('variable2;','errcatch')<>0 then disp("Взведена ошибка"); else disp("execstr полна счастья"); end
Смотрите также
Report an issue | ||
<< exec | Функции | feval >> |