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 - Português - Русский

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
However, this page did not exist in the previous stable version.

Scilabヘルプ >> Scilab > Error handling > errcatch

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

参照

  • try — try-catch 制御命令のtryブロックを開始
  • errclear — エラーのクリア
  • iserror — エラー発生の確認
  • whereami — カレントの命令コールツリーを表示
  • execstr — 文字列中のScilabコードを実行
  • exec — スクリプトファイルを実行する
  • pause — 中断モード, キーボード入力を待つ
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:57 CEST 2015