Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -

Please note that the recommended version of Scilab is 6.0.0. This page might be outdated.
See the recommended documentation of this function

Справка Scilab >> Функции > execstr

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

Смотрите также

  • evstr — вычисление выражений
  • lasterror — получение последнего записанного сообщения об ошибке
  • error — сообщение об ошибке
  • try — начало блока try в управляющей структуре try-catch
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 02 14:01:18 CEST 2014