メッセージとエラー処理

SAD は関数の実行中にエラーが発生するとそれに対応するメッセージを生成します。そしてその関数の実行は中断され、関数の結果はその関数を呼び出した形そのものになります。その時点でメッセージは端末に出力されますが、関数 Off により出力を抑制することもできます。また、メッセージの重要度に応じて、その後のプログラムの実行は中断または継続されます。また、メッセージの発生は関数 Check により検出することができます。

次の例

  Log[1, 2, 3] + Sin[1, 2]
???General::narg:  Number of arguments is expected 1 or 2 in Log[1,2,3]
???General::narg:  Number of arguments is expected 1 in Sin[1,2]
Out[4]:= (Log[1,2,3]+Sin[1,2])

はこのようなメッセージが発生した例です。ここで General::narg がこのメッセージを識別する式です。この例では まず Log[1, 2, 3] でエラーが発生していますが、そのまま実行が継続され次の Sin[1, 2] を実行し、そこでまた同じメッセージを生成しています。これらは同じメッセージでありながら末尾が異なっています。実はこの General::narg というメッセージは

   General::narg
Out[5]:= "Number of arguments is expected `1`"

というもので、この中の `1` には別の文字列が代入されるようになっています。また、行頭の ??? と行末の in ... 以降はシステムが付加するものです。

ユーザーはまた、自分のプログラムのなかで随時メッセージを発行することができます。そのようなメッセージの登録は関数 MessageName(演算子 ::) で行います。

MessageName, ::

Off

On

$MessageList

MessageList

Check

Message


トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-11-04 (土) 16:39:06