Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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
Report an issue | ||
<< exec | Funções | funcprot >> |