execstr
文字列中のScilabコードを実行
呼び出し手順
execstr(instr) ierr = execstr(instr, 'errcatch' [,msg])
引数
- instr
文字列のベクトル, 実行するScilab命令.
- ierr
整数, 0 ばたはエラー番号.
- msg
値
'm'
または'n'
を有する文字列. デフォルト値は'n'
.
説明
引数instr
で指定したScilab命令を実行します.
instr の中では継続記号 (..) を使用する
べきではないことに注意してください. |
'errcatch'
フラグが指定されない場合,
エラー処理は通常と同様に行われます.
'errcatch'
フラグが指定された場合,
instr
で定義された命令を実行す際に
発生したエラーはエラーメッセージを発生せず,
instr
命令の実行を
(エラーが発生した場所で)破棄し,
エラー番号に等しいierr
を返して
復帰します.
この場合,エラーメッセージの出力は
msg
オプションにより次のように
制御されます:
- "m"
エラーメッセージは表示され,記録されます.
- "n"
エラーメッセージは表示されませんが, 記録されます ( lasterror参照). これがデフォルトです.
ierr = execstr(instr, 'errcatch')
は構文エラーも
処理することができます.
この特徴は,ユーザへの問い合わせにより得られた命令を
評価する際に有用です.
例
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
Report an issue | ||
<< exec | Functions | feval >> |