Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
errcatch
エラーの捕捉
呼出し手順
errcatch(n [,'action'] [,'option']) errcatch()
引数
- n
整数
- action, option
文字列
説明
errcatch は,
n型のエラーが発生した時に
実行される "アクション" (エラーハンドラ)を指定します,
n は以下の意味を有します:
n>0の場合, n は
捕捉するエラー番号となります.
n<0 の場合,全てのエラーが捕捉されます.
actionは以下の文字列のどれかとなります:
- "pause"
誤差を捕捉した際に pause が実行されます. このオプションはデバッグの際に有用です. カレントのコンテキストで情報を取得するには
whereami()を使用してください.- "continue"
関数または実行ファイルないの次の命令が実行され, カレントの命令は無視されます. iserror関数により, エラーが発生したかどうかを調べることが可能です.できるだけ早く errclear関数によりエラーをクリアすることを 忘れないようにしてください. このオプションはエラーからの回復の際に有用です. 多くの場合, execstr 関数または try制御構造を使用することにより
errcatch(n,"continue",..)を 置換することができます.- "kill"
デフォルトのモードであり,全ての実行中の関数の実行が破棄され, Scilabの処理はレベル0プロンプトに戻ります.
- "stop"
カレントの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
参照
| Report an issue | ||
| << Error handling | Error handling | errclear >> |