エラーの捕捉
errcatch() errcatch(n, 'pause') errcatch(n, 'continue') errcatch(n, 'kill') errcatch(n, 'stop') errcatch(…, 'nomessage')
整数
errcatch
は,
n
型のエラーが発生した時に
実行される "アクション" (エラーハンドラ)を指定します,
n
は以下の意味を有します:
n
>0
の場合, n
は
捕捉するエラー番号となります.
n
<0
の場合,全てのエラーが捕捉されます.
action
は以下の文字列のどれかとなります:
誤差を捕捉した際に pause が実行されます.
このオプションはデバッグの際に有用です.
カレントのコンテキストで情報を取得するには
whereami()
を使用してください.
関数または実行ファイルないの次の命令が実行され,
カレントの命令は無視されます.
iserror関数により,
エラーが発生したかどうかを調べることが可能です.できるだけ早く
errclear関数によりエラーをクリアすることを
忘れないようにしてください.
このオプションはエラーからの回復の際に有用です.
多くの場合,
execstr 関数または
try制御構造を使用することにより
errcatch(n,"continue",..)
を
置換することができます.
デフォルトのモードであり,全ての実行中の関数の実行が破棄され, Scilabの処理はレベル0プロンプトに戻ります.
カレントのScilabセッションを中断します(Scilabが外部プログラムからコールされた時に有用).
option
は中断時のエラーメッセージである
文字列 'nomessage'
です.
デフォルトモードに戻すためには,
errcatch(-1,"kill")
または
errcatch(-1)
と入力してください.
errcatch()
は以前使用されていたerrcatch(-1)
と
等価です.
errcatch
のアクションはカレントの評価コンテキスト
(function, exec, pause) およびサブレベル全体に適用されます.
あるサブレベル内でerrcatch
を2回コールすると
このサブレベルでの最初のコールが隠蔽され,
最初の関数コールの効果は削除されます.
Scilab関数または exec のコンテキスト内でコールされた場合,
errcatch
は,関数のリターンの時に自動的にリセットされます.
errcatch(144,"continue") 2/"foo" disp(a) // Without the errcatch, this line would not be executed errcatch(-1,"kill") // Come back in the normal mode errcatch(144,"pause") 2/"foo" // Enter in "pause" mode errcatch(27,'continue','nomessage') b=2/0 // No error message but b will not exist | ![]() | ![]() |
Version | Description |
5.5.2 | errcatch was removed after Scilab 5.5.2. |