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 - 日本語 - Русский

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

Ajuda do Scilab >> Funções > execstr

execstr

executa código Scilab em strings

Seqüência de Chamamento

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

Parâmetros

instr

vetor de strings, instrução Scilab a ser executada.

ierr

inteiro, 0 ou número de erro.

msg

string com valores 'm' ou 'n'. O padrão é 'n'.

Descrição

Executa as instruções Scilab fornecidas pelo argumento instr.

Note que instr não deve fazer uso de marcas de continuação (..)

Se o flag 'errcatch' não estiver presente, a manipulação de erros ocorre de maneira usual.

Se o flag 'errcatch' for ajustado, e um erro for encontrado enquanto são executadas as instruções definidas em instr, execstr não imprime uma mensagem de erro, mas aborta a execução das instruções instr (no ponto onde o erro ocorreu) e retorna com ierr igual ao número de erro. Neste caso a exibição da mensagem de erro é controlada pela opção msg :

"m"

a mensagem é exibida e registrada.

"n"

nenhuma mensagem de erro é exibida, mas a mensagem de erro é registrada (ver lasterror). Este é o padrão.

ierr = execstr(instr, 'errcatch') pode manipular erros sintáticos. Isto é útil para a avaliação de uma instrução obtida por uma pegunta ao usuário.

Exemplos

execstr('a=1') // ajusta a=1.
execstr('1+1') // faz nada (enquanto evstr('1+1') retorna 2)

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

execstr('a=zzzzzzz','errcatch')
execstr('a=zzzzzzz','errcatch','m')

//erros de sintaxe
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

Ver Também

  • evstr — avaliação de expressões
  • lasterror — retorna a última mensagem de erro registrada
  • error — mensagens de erro
  • try — início de um bloco try numa instrução de controle try-catch (significa "tentar...")
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Apr 01 10:24:30 CEST 2015